我有一个XML文档,格式如下:
<Alpha>
<Beta>
<Gamma>
<Delta id="1">
...
</Delta>
<Delta id="2">
...
</Delta>
...
</Gamma>
</Beta>
</Alpha>
我正在寻找一种方法来查找所有Delta
元素(无论有多少元素),并将id
属性的值增加一个特定值{{1} },然后保存文档。实现这一目标的最快方法是什么?
答案 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");