我正在使用以下代码动态创建xml文件
var xrFeed = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
xrFeed.WriteStartDocument();
xrFeed.WriteStartElement("ads");
foreach (var i in items)
{
xrFeed.WriteStartElement("ad");
xrFeed.WriteElementString("id", "<![CDATA[" + i.AdId+ "]]>");
xrFeed.WriteEndElement();
}
xrFeed.WriteEndElement();
xrFeed.WriteEndDocument();
xrFeed.Flush();
xrFeed.Close();
Response.End();
DataBind();
作为输出我得到了
<?xml version="1.0" encoding="utf-8"?>
<ads>
<ad>
<id><![CDATA[12345]]></id>
</ad>
</ads>
但我不需要编码&lt;标签
<?xml version="1.0" encoding="utf-8"?>
<ads>
<ad>
<id><![CDATA[12345]]></id>
</ad>
</ads>
答案 0 :(得分:2)
而不是:
xrFeed.WriteElementString("id", "<![CDATA[" + i.AdId+ "]]>");
执行:
xrFeed.WriteStartElement("id");
xrFeed.WriteCData(i.AdId);
xrFeed.WriteEndElement();
XmlTextWriter
将对您发现的任何特殊字符进行编码。
答案 1 :(得分:0)
更改
< ![CDATA[" + i.AdId+ "]] >
到
& lt;![CDATA[12345]]& gt;
只需删除间距...&amp; lt或&amp; GT;