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

Ian*_*ton 43 .net c# xml linq-to-xml

这是从.net使用XDocument时.

我觉得这可能有用......

xElement.Element(elementName).Value = new XCData(value).ToString();
Run Code Online (Sandbox Code Playgroud)

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

<name>&lt;![CDATA[hello world]]&gt;</name>
Run Code Online (Sandbox Code Playgroud)

Dam*_*ver 41

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

xElement.Element(elementName).Add(new XCData(value));
Run Code Online (Sandbox Code Playgroud)


Ral*_*rek 37

尝试

xElement.Element(elementName).ReplaceNodes(new XCData(value));
Run Code Online (Sandbox Code Playgroud)


小智 37

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

new XElement(elementName, new XCData(value));
Run Code Online (Sandbox Code Playgroud)