【问题标题】:How do I make the value of an XElement be wrapped in ![CDATA[***]]?如何使 XElement 的值包含在 ![CDATA[***]] 中?
【发布时间】:2021-06-02 10:45:01
【问题描述】:

这是在使用 .net 中的 XDocument 时。

我认为这可能有效...

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

...但是结果是这样的...

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

【问题讨论】:

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


    【解决方案1】:

    XCDataXNode 的一种。因此,您应该尝试将 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 但这个想法来自您的回答。
        猜你喜欢
        • 2014-02-23
        • 1970-01-01
        • 1970-01-01
        • 2016-09-24
        • 2012-08-17
        • 2014-08-03
        • 1970-01-01
        • 2010-09-30
        相关资源
        最近更新 更多