Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建动态xml提要会自动对一些标记进行编码_C#_Asp.net_Xml - Fatal编程技术网

C# 创建动态xml提要会自动对一些标记进行编码

C# 创建动态xml提要会自动对一些标记进行编码,c#,asp.net,xml,C#,Asp.net,Xml,我正在使用下面的代码动态创建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

我正在使用下面的代码动态创建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();
var xrFeed=newXMLTextWriter(Response.OutputStream,Encoding.UTF8);
xrFeed.WriteStartDocument();
xrFeed.WriteStartElement(“ads”);
foreach(项目中的var i)
{
xrFeed.WriteStartElement(“ad”);
WriteElementString(“id”,”);
xrFeed.WriteEndElement();
}
xrFeed.WriteEndElement();
xrFeed.WriteEndDocument();
xrFeed.Flush();
xrFeed.Close();
Response.End();
数据绑定();
作为输出,我得到

<?xml version="1.0" encoding="utf-8"?>
<ads>
  <ad>
     <id>&lt;![CDATA[12345]]&gt;</id>
  </ad>
</ads>

![CDATA[12345]]
但是我不需要对
<?xml version="1.0" encoding="utf-8"?>
<ads>
  <ad>
     <id><![CDATA[12345]]></id>
  </ad>
</ads>

而不是:

xrFeed.WriteElementString("id", "<![CDATA[" + i.AdId+ "]]>");
正如您所发现的那样,
XmlTextWriter
将对任何特殊字符进行编码。

更改

< ![CDATA[" + i.AdId+ "]] > 

只需删除间距。。。介于<或>

这将输出
&;书信电报;![CDATA[12345]&;燃气轮机
< ![CDATA[" + i.AdId+ "]] > 
& lt;![CDATA[12345]]& gt;