开发者

updating CDATA in xml

i have xml file which contains CDATA

i need to update the CDATA as like in this example.

i am modifying "span" here

<elements>
    <![CDATA[-div[id|dir|class|align|style],-span[class|align]]]>
  </elements>

should be updated as

<elements>
    <![CDATA[-div[id|dir|class|align|style],-span[class|align|style]]]>
  </elements>

i am using开发者_运维百科 framework 2.0.. how to do this using xmldocument.

thank you


Just fetch the XmlCDataSection and change the Value property. Here's an example which admittedly uses LINQ to find the CData section, but the principle of changing it would be the same:

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);
    }
}


You will need to extract the cdata as a regular string, then adjust it using normal string operations (or a regex) before re-inserting as cdata. That is the nature of cdata sections.


c# 2.0

This line updates the CDATA InnerText

xmlDoc.DocumentElement.SelectSingleNode("//elements").FirstChild.Value  = 
    "-div[id|dir|class|align|style], span[class|align|style]";

Full code

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);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜