在C#中,使用System.Xml.Linq XText如何获取&;在文档中,而不是&;amp;

在C#中,使用System.Xml.Linq XText如何获取&;在文档中,而不是&;amp;,c#,xml,linq,C#,Xml,Linq,使用MS Visual Studio 2013创建C#应用程序,我试图在XML文档中获得以下输出 <UnitsOfMeasure> &uom-data; </UnitsOfMeasure> 谢谢问题是&在XML中有一个特殊的含义-它被用来逃避其他事情;例如,见。为您编写的是在XML中包含一个符号的正确方法,当XML解析器读回它时,它应该将&back转换为& 因此,如果有什么问题的话,您可能会遇到任何代码重新读入XML的问题,因为它应该为您转换回XML。X

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

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

谢谢

问题是&在XML中有一个特殊的含义-它被用来逃避其他事情;例如,见。为您编写的是在XML中包含一个符号的正确方法,当XML解析器读回它时,它应该将&back转换为&

因此,如果有什么问题的话,您可能会遇到任何代码重新读入XML的问题,因为它应该为您转换回XML。

XML有一种称为“实体”的东西,它的形式是符号和字符分号

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

&
是最常用的,它是插入一个
&
<代码>&复制表示版权符号

除了标准的,你可以定义你自己的


您试图输入的内容--
&uom数据--如此巧妙地遵循实体格式,我怀疑它确实是一个实体,而您只是缺少定义它的部分。

第一个不是。您必须对某些字符进行编码,
&
是其中之一,因此第二个字符是正确的。@juharr-实际上它可能是有效的Xml。我在回答中进一步解释。如果您试图编写一个实体,那么这可能是一个重复
<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");