如何包装XElement的值![CDATA [***]]?

时间:2012-03-02 10:26:49

标签: c# .net xml linq-to-xml

这是在使用.net。

中的XDocument时

我认为这可能有用......

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

......但它就像这样......

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

3 个答案:

答案 0 :(得分:40)

XCData是一种XNode。因此,您应该尝试将Add添加到元素中,而不是将值(documented设置为元素的展平文本内容):

xElement.Element(elementName).Add(new XCData(value));

答案 1 :(得分:36)

尝试

xElement.Element(elementName).ReplaceNodes(new XCData(value));

答案 2 :(得分:35)

如果您正在创建XElement(而不是修改它),您也可以直接在构造函数中添加它作为内容,如下所示:

new XElement(elementName, new XCData(value));