为什么XMLDocument AppendChild()将“amp”添加到xml节点字符串值?

时间:2011-01-13 10:36:19

标签: c# .net xmldocument ampersand appendchild

我有一个URL字符串,我想插入XMLDocument - XmlElement节点:

“HTTP://xx.xxx.xxx.xx4:7000 / SomeURL /有些/地点=阿萨夫&安培;;门户=如何”

编写此代码时:

XmlElement NodeElement = xmlDoc.CreateElement(nodeToCreate);
NodeElement.InnerText = propInfo.GetValue(requestData,null).ToString();
additionalParamsNode.AppendChild(NodeElement);

'NodeElement.InnerText'中的文字看起来很好,但当我做了appendChild() “& amp”写在XMLElement additionalParamsNode中。 它就像XMLElement采用InnerXML,而不是NodeElement的InnerText。

我不想将带有“amp”的字符串写入XML,因为链接不起作用。

如何在不改变“&”的情况下追加儿童“& amp”?

1 个答案:

答案 0 :(得分:1)

如果我没记错,&'s是XML中的非法字符之一。这就是为什么它变成& amp(html相当于&)。

您应该能够将数据包装在CDATA标签中。

<![CDATA[http://xx.xxx.xxx.xx4:7000/SomeURL/Some/?Locale=asaf&;Portal=how]]>

您可能必须在完成后解析出CDATA标记。<​​/ p>