如何修改外部xml文件并在C#中本地保存

时间:2012-09-27 07:05:46

标签: c# asp.net .net xml

我是C#的新手,想要操作外部xml文件。这是该文件:

<results>
     <root />
     <category id="" title="" />
     <category />
     <category />
</results>

我希望将其修改为:

<results>
    <root />
    <categories>
        <category id="" title=""/>
        <category />
        <category />
    </categories>
</results>

3 个答案:

答案 0 :(得分:2)

这很有效,它取代了直接在根元素下找到的所有名为category的元素(根元素为results),并添加了名为categories的新元素。然后会将category个元素添加到categories,并从category元素下删除results个元素。最后添加了categories元素。您也可以通过调用Save方法保存文档:

        XDocument doc = XDocument.Load("Data.xml");

        var categoriesElement = new XElement("categories");

        var categoryElements = doc.Root.Elements("category");
        foreach(var el in categoryElements.ToList())
        {
            categoriesElement.Add(new XElement(el));
            el.Remove();

        }

        doc.Element("results").Add(categoriesElement);
        //doc.Save(<filepath>);

答案 1 :(得分:0)

        XElement elem = XElement.Parse(xml);
        elem = new XElement("results",
             new XElement("root", elem.Element("root").Value),
             new XElement("categories", elem.Descendants("category"))
            );            

答案 2 :(得分:0)

理想情况下,可以使用xslt转换xml。关于xslt transforation的基础知识可以在下面找到,

http://support.microsoft.com/kb/307322

http://www.w3schools.com/xsl/

使用xslt使您的解决方案或代码更易于管理。希望这有帮助