我正在使用LINQ to XML将元素写入xml文档。我遇到的问题是我尝试写入xml元素的字符串包含诸如&,<,>之类的字符。和“。
当我使用以下代码将其写入xml时,
XElement Config= new XElement("Student", new XElement("ID", "><&\""));
我没有将这些特殊字符写入XML文档。相反,我会得到像< for < and > for >
这样的东西。如何在将这些字符写入xml时将其转义?
由于
答案 0 :(得分:4)
XDocument逃脱了它们。
<Student><ID>><&"</ID></Student>
不是格式良好的XML。
生成XDocument的格式良好的版本是:
<Student>
<ID>><&"</ID>
</Student>
您可以使用此代码(使用CDATA):
XElement Config = new XElement("Student", new XElement("ID", new XCData("><&\"")));
输出:
<Student>
<ID><![CDATA[><&"]]></ID>
</Student>
答案 1 :(得分:1)
如果你想要实现的是这样的文件:
<Student>
<ID>><&\</ID>
</Student>
然后你做错了。它不是一个格式良好的XML,也没有解析器可以使用它。
答案 2 :(得分:1)
如果您不希望使用转义字符输出它,请使用StringBuilder或StreamWriter。
事实上,你正在尝试生成不能被任何XML阅读器解析的错误XML,所以实际上没有意义 - 除非你故意试图打破别人的XML处理!