単純な選択
基本使用方法が分かったので、いくつかの例を示しながら要素の選択方法について見ていきたいと思います。
パスを指定した要素の取り出し
下記はpopulation_data要素の孫要素であるname要素をすべて取得します。このときのXPath式は /population/prefecture/name となります(先頭の"/"はルート要素を表します)。結果としてこのXMLデータが持つ都道府県名すべてが表示されます。
$nodes = $navi.Select("/population_data/prefecture/name")
While ( $nodes.MoveNext() )
{
$nodes.Current.Value
}

特定の属性を持つ要素の取り出し
サンプルデータのprefecture要素には属性districtがあります。districtが「関東」となっている県名を取得するには XPath式に/population_data/prefecture[@district='関東']/nameを指定します。prefecture[@district='関東']はprefecture要素のdistrict属性が「関東」に等しいものという意味です。
下記は結果として、属性が「関東」の要素値が表示されます。
$nodes = $navi.Select("/population_data/prefecture[@district='関東']/name")
While ( $nodes.MoveNext() )
{
$nodes.Current.Value
}

要素名を指定した取り出し
指定した要素名を持つ要素を取り出すことも可能です。たとえば要素名が「name」のものすべてを取得するにはXPath式に//nameと指定します。XPath式の先頭に「//」がある場合は現在のデータの中から再帰的に「name」という要素を探し出します。
下記を実行すると要素名が「name」のデータをすべて取得します。
$nodes = $navi.Select("//name")
While ( $nodes.MoveNext() )
{
$nodes.Current.Value
}

実行結果を見ると分かるように県名以外に「盛岡市」というデータが表示されていることが分かります。これは岩手県を表すデータの下に
<municipality> <name>盛岡市</name> <population>298692</population> </municipality>
というXMLデータがあり、この中にも「name」という要素があるためです。
件数の取得
XPath式を指定して取得できる要素の件数を取得するにはCountプロパティを使用します。 たとえば先ほどのXPath式//nameの件数を取得するには下記のようにします。
$nodes = $navi.Select("//name")
$nodes.Count

