【问题标题】:Modifying XElement value loses CData type修改 XElement 值会丢失 CData 类型
【发布时间】:2011-01-06 18:52:43
【问题描述】:

我有一个带有一些 CData 节点的 XML 文件。但是当我尝试就地修改它们时:

var doc = XDocument.Load(filename);
foreach(var el in doc.Descendants("foo"))
{
    el.Value = el.Value.Replace("bar", "baz");
}
doc.Save(filename);

...他们都失去了他们的 CData 类型。避免这种情况的最佳方法是什么?谢谢!

【问题讨论】:

    标签: c# .net xml linq cdata


    【解决方案1】:

    从 XML 的角度来看,CData 和纯文本节点是等效的。所以您看到的行为是预期的 - Value 永远不会创建 CDATA 节点,因为从 XML 的角度来看不需要它。

    如果您必须拥有 CData,则需要显式创建一个。例如,请参阅http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.createcdatasection.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-03
      • 2017-05-24
      • 2014-02-23
      • 1970-01-01
      • 2012-08-17
      • 1970-01-01
      • 2021-06-02
      相关资源
      最近更新 更多