1

次の一般的な形式の XML ドキュメントがあります。

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

Deltaすべての要素を (要素の数に関係なく) 検索し、id属性の値を特定の値だけ増やしてx、ドキュメントを保存する方法を探しています。これを達成するための最速の方法は何ですか?

4

2 に答える 2

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");
于 2012-05-12T16:33:24.097 に答える
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");
于 2012-05-12T16:36:11.447 に答える