我有包含CDATA的xml文件
我需要更新CDATA,就像在这个例子中一样。
我在这里修改“span”
<elements>
<![CDATA[-div[id|dir|class|align|style],-span[class|align]]]>
</elements>
应更新为
<elements>
<![CDATA[-div[id|dir|class|align|style],-span[class|align|style]]]>
</elements>
我使用的是框架2.0 ..如何使用xmldocument。
谢谢
答案 0 :(得分:5)
只需获取XmlCDataSection
并更改Value
属性即可。这是一个肯定使用LINQ来查找CData部分的例子,但改变它的原则是相同的:
using System;
using System.Linq;
using System.Xml;
class Test
{
static void Main(string[] args)
{
string xml =
@"<elements>
<![CDATA[-div[id|dir|class|align|style],-span[class|align]]]>
</elements>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
XmlCDataSection cdata = doc.DocumentElement
.ChildNodes
.OfType<XmlCDataSection>()
.First();
cdata.Value = "-div[id|dir|class|align|style],-span[class|align|style]";
doc.Save(Console.Out);
}
}
答案 1 :(得分:4)
您需要将cdata解压缩为常规字符串,然后在重新插入cdata之前使用普通字符串操作(或正则表达式)进行调整。这就是cdata部分的本质。
答案 2 :(得分:1)
c#2.0
此行更新CDATA InnerText
xmlDoc.DocumentElement.SelectSingleNode("//elements").FirstChild.Value =
"-div[id|dir|class|align|style], span[class|align|style]";
完整代码
string xmlPath = @"C:\yourFolder\yourFile.xml";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlPath);
xmlDoc.DocumentElement.SelectSingleNode("//elements").FirstChild.Value =
"-div[id|dir|class|align|style], span[class|align|style]";
xmlDoc.Save(xmlPath);