2011-01-13 7 views
0

У меня есть URL-строки, я хочу, чтобы вставить к XMLDocument - XmlElement Узел:почему XMLDocument AppendChild() добавляет «amp» к значению строки узла xml?

«HTTP: //xx.xxx.xxx.xx4: 7000/SomeURL/Некоторые/Locale = Асаф &; портал = как»

когда пишут этот код:

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 без изменения «&» на «& amp»?

ответ

1

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

Вы должны иметь возможность обертывать данные в тегах CDATA.

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

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

+0

это не помогает, я делаю: NodeElement.InnerText = "! [CDATA [" + propInfo.GetValue (requestData, null) .ToString() + "]]"; и все же я получаю внутри innerXML & amp вместо &. – Rodniko

+1

У вас должно быть начало <и окончание> вокруг тега. NodeElement.InnerText = ""; –

+0

И, возможно, установите свойство InnerXml вместо InnerText, чтобы успешно добавить раздел CDATA вместо простого экранированного текста. –

 Смежные вопросы

  • Нет связанных вопросов^_^