たとえば以下の 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 要素発見 た 続行するには何かキーを押してください . . .