回答:
Elements
直接の子孫、つまり直接の子である要素のみを検索します。
Descendants
子供、孫など、あらゆるレベルの子供を検索します...
違いを示す例を次に示します。
<?xml version="1.0" encoding="utf-8" ?>
<foo>
<bar>Test 1</bar>
<baz>
<bar>Test 2</bar>
</baz>
<bar>Test 3</bar>
</foo>
コード:
XDocument doc = XDocument.Load("input.xml");
XElement root = doc.Root;
foreach (XElement e in root.Elements("bar"))
{
Console.WriteLine("Elements : " + e.Value);
}
foreach (XElement e in root.Descendants("bar"))
{
Console.WriteLine("Descendants : " + e.Value);
}
結果:
要素:テスト1 要素:テスト3 子孫:テスト1 子孫:テスト2 子孫:テスト3
必要な要素が直接の子であることがわかっている場合、のElements
代わりにを使用すると、パフォーマンスが向上しますDescendants
。