如何使 XElement 的值包含在 ![CDATA[***]] 中?
Posted
技术标签:
【中文标题】如何使 XElement 的值包含在 ![CDATA[***]] 中?【英文标题】:How do I make the value of an XElement be wrapped in ![CDATA[***]]? 【发布时间】:2021-06-02 10:45:01 【问题描述】:这是在使用 .net 中的 XDocument 时。
我认为这可能有效...
xElement.Element(elementName).Value = new XCData(value).ToString();
...但是结果是这样的...
<name><![CDATA[hello world]]></name>
【问题讨论】:
【参考方案1】:XCData 是XNode 的一种。因此,您应该尝试将 Add 设置为元素,而不是设置值(将 documented 设置为元素的展平文本内容):
xElement.Element(elementName).Add(new XCData(value));
【讨论】:
【参考方案2】:如果您正在创建XElement(而不是修改它),您也可以直接在构造函数中添加添加,如下所示:
new XElement(elementName, new XCData(value));
【讨论】:
【参考方案3】:试试
xElement.Element(elementName).ReplaceNodes(new XCData(value));
【讨论】:
谢谢 :) 只是为了补充一点,我需要 CDATA 来替换另一个具有更多兄弟节点的元素,因此使用了 ReplaceWith 但这个想法来自您的回答。以上是关于如何使 XElement 的值包含在 ![CDATA[***]] 中?的主要内容,如果未能解决你的问题,请参考以下文章