Ответ 1
Try
xElement.Element(elementName).ReplaceNodes(new XCData(value));
Это при использовании XDocument из .net.
Я думал, это может сработать...
xElement.Element(elementName).Value = new XCData(value).ToString();
... но это получается так...
<name><![CDATA[hello world]]></name>
Try
xElement.Element(elementName).ReplaceNodes(new XCData(value));
XCData - это тип XNode. Таким образом, вы должны попробовать Добавить его в элемент, а не установить значение (которое documented - это сглаженное текстовое содержимое элемента):
xElement.Element(elementName).Add(new XCData(value));
Если вы создаете XElement (вместо его модификации), вы также можете просто добавить его непосредственно в конструктор, как контент следующим образом:
new XElement(elementName, new XCData(value));