サンプルアプリを使ってみる
XPathってご存知でしょうか?XPathはXMLのデータをピンポイントで取得するための文法です。
簡単なXPathの記法はすぐ理解できると思いますので、下の記事を続けて読んでみてください。
XPathの高度な文法はこのサイトでは説明しませんので、「XPath」でインターネット検索してみてください。
サンプルアプリにXMLファイルを入力する
サンプルアプリは起動しているはずですので、「参照」ボタンを押して、「サンプルをビルド」のページでダウンロードしたXMLファイルを選択してください。
XPathを使ってみる
読み込んだ XML は以下の内容として、話を進めます。
入力XMLは、飲食店のメニューをイメージして用意しました。さっそくXPathで、このXMLデータから
ピンポイントで文字列を取り出して見ましょう。
- 検索XPathに「 /price/drink/item[@name='beer'] 」を入力します
- 「↓取出↓」ボタンを押します
- 変換結果に 「500」と、ビールの価格が取り出されました。

XMLの構造をフォルダのように見ると、XPathの意味って何となく分かりますよね?
このサンプルアプリは、元のXMLファイルを書き換えることもできます。
試しに、ビールの価格を 550 にして見ましょう。
- 変換結果の 「500」を「550」に書き換えます。
- 「↑書込↑」ボタンを押します。
- 元のprice.xmlが更新されました。
色々なXPathを入力してみる
参考までに、色々なXPathを入力して「↓取出↓」ボタンを押してみましょう。
(注)本アプリでは、XPathに該当するデータが複数あったときは、最初の1件だけ表示します。
目的 | XPath | 結果 | 「↑書込↑」 |
---|---|---|---|
とんかつ の値段を見る | /price/food/item[@name='とんかつ'] | 650 | ○可 |
foodの一覧を表示する | /price/food/item/@name | 定食 とんかつ うどん |
△(注)XPathは3箇所にヒットしていますが、本アプリでは最初の1箇所(定食)を書き換えます |
ワインが700円未満かどうか | boolean(/price/drinkitem[@name ='wine'] < 700]) | true | ×不可(関数の結果なので) |
20歳以上限定のドリンクの数 | count(/price/drink/node()[@year >=20]) | 2.0 | ×不可(関数の結果なので) |