たとえば以下の xml ファイル (test.xml) があり、/root/node/leaf の内容を列挙したいと考えたとします。
<Root>
<Node>
<Leaf>あ</Leaf>
<Leaf>い</Leaf>
</Node>
<Node>
<Leaf>か</Leaf>
<Leaf>き</Leaf>
<dummy>く</dummy>
<Leaf>け</Leaf>
<Leaf>
<Leaf>さ</Leaf>
<Leaf>し</Leaf>
<dummy>す</dummy>
<Leaf>せ</Leaf>
</Leaf>
</Node>
<Node>
<Leaf>た</Leaf>
</Node>
<Leaf>な</Leaf>
<Leaf>に</Leaf>
</Root>
Linq to XML を使用する場合、以下のように書けます。
Sub Main()
Dim xdoc = XDocument.Load(".test.xml")
Dim q = From x In xdoc.<Root>.<Node>
Select x.<Leaf>
For Each n In q
Console.WriteLine("----- {0} 要素発見", n.Count)
For Each m In n
Console.WriteLine(m.Value)
Next
Next
End Sub
結果は以下。/root/node/leaf のデータが拾えています。
----- 2 要素発見 あ い ----- 4 要素発見 か き け さしすせ ----- 1 要素発見 た 続行するには何かキーを押してください . . .