почему XMLDocument AppendChild () добавляет «amp» к строковому значению узла xml? - PullRequest
0 голосов
/ 13 января 2011

У меня есть строка URL-адреса, которую я хочу вставить в XMLDocument - узел XmlElement:

"http://xx.xxx.xxx.xx4:7000/SomeURL/Some/?Locale=asaf&;Portal=how"

при записи этого кода:

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

Текст в«NodeElement.InnerText» выглядит нормально, но когда я делаю appendChild (), в «XMLElement AdditionalParamsNode» пишется «&», подобно XMLElement, принимает InnerXML, а не InnerText NodeElement.не хочу писать строку с "amp" в XML, потому что ссылка не будет работать.

как мне добавить appendChild без изменения "&" на "&"?

1 Ответ

1 голос
/ 13 января 2011

Если я правильно помню, & являются одним из недопустимых символов в XML. Вот почему он превращается в & amp (HTML-эквивалент &).

Вы должны быть в состоянии обернуть данные в теги CDATA.

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

Возможно, вам придется анализировать теги CDATA, когда вы закончите.

...