XPathは、XMLデータ内の特定の要素や属性を指定するための記述方法です。XMLデータのある要素を起点として目的の要素または属性に到達するまでの経路を記述することによって、XML内のデータを指定します。例えば、以下のXMLデータのname要素は"/book/publisher/name"というXPathで指定されます。
<?xml version="1.0" encoding="Shift_JIS" ?> <book> <title>Apcoordinator入門</title> <date>2001/4/1</date> <publisher lang="ja"> <name>富士通タッチコミュニケーションズ</name> <address> <zip>222-0033</zip> <prefecture>神奈川県</prefecture> <city>横浜市</city> </address> <phone>000-111-2222</phone> <phone>000-333-4444</phone> <phone type="tollfree">0120-2222**</phone> <fax type="g4">000-555-6666</fax> </publisher> </book>
XPathの記述には絶対パスと相対パスがあります。絶対パスはXMLデータのルート要素を起点にします。前述の例は絶対パスです。相対パスは、あらかじめ定めた要素を起点として、目的の要素を指定します。上記のXMLでpublisher要素を起点とした相対パスの例をいくつか示します。
XPath | 指定されるデータ |
---|---|
address | publisherの子要素のaddress要素 |
address/zip | publisherの子要素のaddressのさらに子要素のzip要素 |
phone[2] | publisherの子要素のphone要素のうち2番目の要素(先頭の要素を「1番目」と数える) |
phone[@type="tollfree"] | publisherの子要素のphone要素のうち、type属性の値が"tollfree"である要素 |
. | publisher要素自身 |
@lang | publisherのlang属性 |
fax/@type | publisherの子要素のfax要素の属性type |