Как сделать так, чтобы значение XElement было упаковано! [CDATA [***]]? - PullRequest
42 голосов
/ 02 марта 2012

Это при использовании XDocument из .net.

Я думал, что это может сработать ...

xElement.Element(elementName).Value = new XCData(value).ToString();

... но так получается ...

<name>&lt;![CDATA[hello world]]&gt;</name>

Ответы [ 3 ]

41 голосов
/ 02 марта 2012

XCData - это тип XNode . Таким образом, вы должны попытаться добавить его к элементу, а не устанавливать значение (которое задокументировано как уплощенное текстовое содержимое элемента):

xElement.Element(elementName).Add(new XCData(value));
37 голосов
/ 02 марта 2012

Попробуйте

xElement.Element(elementName).ReplaceNodes(new XCData(value));
36 голосов
/ 23 июля 2013

Если вы создаете XElement (вместо его изменения), вы также можете просто добавить и добавить его непосредственно в конструкторе в качестве содержимого, например:

new XElement(elementName, new XCData(value));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...