[英]updating CDATA in xml
我有包含CDATA的xml文件
我需要更新CDATA,就像在这个例子中一样。
我在这里修改“跨度”
<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这样做。
谢谢
只需获取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);
}
}
您需要将cdata解压缩为常规字符串,然后在重新插入cdata之前使用普通字符串操作(或正则表达式)进行调整。 这就是cdata部分的本质。
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.