操纵XML文档的属性

时间:2012-05-12 16:21:04

标签: c# xml

我有一个XML文档,格式如下:

<Alpha>
    <Beta>
        <Gamma>
            <Delta id="1">
                ...
            </Delta>
            <Delta id="2">
                ...
            </Delta>
            ...
         </Gamma>
    </Beta>
</Alpha>

我正在寻找一种方法来查找所有Delta元素(无论有多少元素),并将id属性的值增加一个特定值{{1} },然后保存文档。实现这一目标的最快方法是什么?

2 个答案:

答案 0 :(得分:6)

最短的代码量最快?

XDocument doc = XDocument.Load("test.xml");
foreach (var id in doc.Descendants("Delta").Attributes("id"))
{
    id.SetValue((int) id + 1);
}
doc.Save("test.xml");

答案 1 :(得分:0)

你可以使用LINQ to Xml(即你使用的.net版本是什么?)。如果是这样,那么Linq就很容易了:

XDocument doc = XDocument.Load(source);
foreach (var deltaNode in doc.Descendants().Where(e => e.Name.LocalName == "Delta"))
    deltaNode.SetAttributeValue("id", "Whatever");