XPath式を使った要素の取得
ここでは、XMLからXPath式を使って要素を取得する方法を見てみます。
サンプルとしてlivedoorのお天気情報サービス(Livedoor Weather Web Service / LWWS)を使用しています。
http://weather.livedoor.com/forecast/webservice/rest/v1?city=84&day=today
XPathとは、XML文書の中の特定の要素を指し示す記述方法で、基本的な記述はUNIXのファイルシステムに似ています(ロケーションパス)。文書木構造の頂点となるルートノードを「/」であらわし、以下、「/」で区切って要素をたどっていきます。
このロケーションパスは、XPathの主要な部分ですがもっと奥が深いです。
パスを指定して要素を取得
XPath式を指定して要素オブジェクトを取得するには、SelectNodes()を使用します。
livedoorのお天気情報サービス(Livedoor Weather Web Service / LWWS)を例にlocation要素を取得して見ます。
Dim weatherxml As New XmlDocument
Dim web As New System.Net.WebClient()
Dim st As System.IO.Stream = web.OpenRead("http://weather.livedoor.com/forecast/" _
"webservice/rest/v1?city=84&day=today")
weatherxml.Load(st)
Dim nodeList As XmlNodeList = weatherxml.SelectNodes("/lwws/location")
For Each node As XmlNode In nodeList
Trace.WriteLine(node.Attributes(0).Value)
Next
st.Close()
上記例では、無駄にFor Eachを使っていますが取得結果は、次のようになります。
近畿