在C#中使用System.Xml.Linq XText如何获得&在文件而不是&

时间:2017-07-21 18:43:19

标签: c# xml linq

使用MS Visual Studio 2013创建C#应用程序,我试图在XML文档中获取以下输出。

<UnitsOfMeasure>
    &uom-data;
</UnitsOfMeasure>

我一直在

<UnitsOfMeasure>
    &amp;uom-data;
</UnitsOfMeasure>

这是我试过的代码

XElement uom = new XElement("UnitsOfMeasure");
uom.Add("\n" + tab2, new XText("&uom-data;"), "\n" + tab1);
sd.Add("\n" + tab1, uom);
sd.Add("\n");

XElement uom = new XElement("UnitsOfMeasure");
uom.Add("\n" + tab2, new XText((char)38 + "uom-data;"), "\n" + tab1);
sd.Add("\n" + tab1, uom);
sd.Add("\n");

由于

2 个答案:

答案 0 :(得分:0)

问题在于&amp;在XML中有特殊含义 - 它用于逃避其他事物;例如,请参阅beware of the ampersand when using xml。正在为您编写的是在XML中包含&符号的正确方法,当XML解析器重新读入时,它应该转换&amp;回到&amp;。

所以,或许,如果有的话,你可能会遇到任何代码再次读取XML的问题,因为它应该为你转换它。

答案 1 :(得分:0)

XML有一些名为&#34; entities&#34;的东西,其格式为ampersand-characters-semicolon

XML实体是不同文本块的别名(尽管在大多数情况下,实体仅用于插入单个字符 - 通常不在键盘上的字符)

&amp;是最常用的 - 插入&&copy;用于版权符号。

除了标准版之外,您还可以自己定义。

您尝试输入的内容 - &uom-data; - 如此巧妙地遵循实体格式,我怀疑它确实是一个实体而您只是错过了它定义的部分