从XmlNode中删除CDATA标记

时间:2013-08-04 12:03:03

标签: c# xmldocument cdata xmlnode

我有XmlNode代表以下xml,例如:

XmlNode xml.innerText =
<book>
<name><![CDATA[Harry Potter]]</name>
<author><![CDATA[J.K. Rolling]]</author>
</book>

我想更改此节点,以便它包含以下内容:

XmlNode xml.innerText =
<book>
<name>Harry Potter</name>
<author>J.K. Rolling</author>
</book>

有什么想法吗?
谢谢!

2 个答案:

答案 0 :(得分:9)

好吧,如果你正是这样说的话,那很容易:

xml.innerText = xml.innerText.Replace("![CDATA[","").Replace("]]","");
xmlDoc.Save();// xmlDoc is your xml document

答案 1 :(得分:1)

我建议你阅读整个xml并重写它。您可以像这样读取没有cdata的值

foreach (var child in doc.Root.Elements())
    {
         string name = child.Name;
         string value = child.Value
    }