在C#中,使用System.Xml.Linq XText如何获取&;在文档中,而不是&;amp;
使用MS Visual Studio 2013创建C#应用程序,我试图在XML文档中获得以下输出在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
<UnitsOfMeasure>
&uom-data;
</UnitsOfMeasure>
谢谢问题是&在XML中有一个特殊的含义-它被用来逃避其他事情;例如,见。为您编写的是在XML中包含一个符号的正确方法,当XML解析器读回它时,它应该将&back转换为& 因此,如果有什么问题的话,您可能会遇到任何代码重新读入XML的问题,因为它应该为您转换回XML。XML有一种称为“实体”的东西,它的形式是符号和字符分号 XML实体是另一个文本块的别名(尽管在大多数情况下,实体仅用于插入单个字符——通常不是键盘上的字符)
&
是最常用的,它是插入一个&
<代码>&复制代码>表示版权符号
除了标准的,你可以定义你自己的
您试图输入的内容--
&uom数据代码>--如此巧妙地遵循实体格式,我怀疑它确实是一个实体,而您只是缺少定义它的部分。第一个不是。您必须对某些字符进行编码,&
是其中之一,因此第二个字符是正确的。@juharr-实际上它可能是有效的Xml。我在回答中进一步解释。如果您试图编写一个实体,那么这可能是一个重复
<UnitsOfMeasure>
&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");