C#,XML中的实体问题新元素节点创建

时间:2016-04-22 13:01:53

标签: c# xml xml-parsing entity

在创建新的XML元素'组织时,由于XML转义符,我面临实体问题,如实体é转换为é

以下是我为解决创建新元素' Organization'

而解析的字符串

Centre de Recherche sur L' Epidemiologie des Désastres

上面的字符串转换为

Centre de Recherche sur L' Epidemiologie des Désastres

在xml文件中。

XML文件中的预期结果是

Centre de Recherche sur L' Epidemiologie des Désastres

任何人都可以帮我摆脱这个吗?

卡扣 enter image description here

从此处编辑

根据理查德的要求,以下是我遵循的方法

XmlDocument document = new XmlDocument();
document.Load(path);
XmlNode newnode = document.CreateNode(XmlNodeType.Element, "affiliation", document.DocumentElement.NamespaceURI);
XmlElement elem = document.CreateElement("Testing", document.DocumentElement.NamespaceURI);
elem.InnerText = "Centre de Recherche sur L' Epidemiologie des Désastres";
newnode.AppendChild(elem);

1 个答案:

答案 0 :(得分:0)

如果要向XML文本内容(包括属性值)添加&<>,则必须对其进行编码(否则会将其与分别是实体,开始或元素标签或元素标签的结尾。)

所以你看起来像是正确的行为。您正在添加文字&,因此它已被编码。当您使用XML解析器读取XML时,XML文本中的&amp;将转换为&

当您设置InnerText时,您似乎有一些已经是XML编码的文本 - 由实体判断 - 所以您可能需要首先解码该文本。