1

我是 C# 新手,想操作外部 xml 文件。这是那个文件:

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

我希望对此进行修改,例如:

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

3 回答 3

2

这是可行的,它替换了category直接在根元素(根元素是results)下找到的所有名为的元素,并添加了名为的新元素categoriescategory然后将元素添加到元素categoriescategory从元素下方删除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>);
于 2012-09-27T07:37:09.857 回答
0

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

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

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

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

于 2012-10-04T15:34:19.303 回答
0
        XElement elem = XElement.Parse(xml);
        elem = new XElement("results",
             new XElement("root", elem.Element("root").Value),
             new XElement("categories", elem.Descendants("category"))
            );            
于 2012-09-27T07:10:34.560 回答