XPathを使って、XMLドキュメント内のノードやノードの集合を選択できるよ。ノードはパスやStepに従って選択されるんだ。XMLの例#
以下の例では、このXMLドキュメントを使用するよ。<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book>
<title lang="eng">Harry Potter&</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
ノードの選択#
XPathを使って、XMLドキュメント内のノードやノードの集合を選択できるよ。ノードはパスやStepに従って選択されるんだ。| 表現 | 説明 |
| nodename | このノードのすべての子を選択 |
| / | ルートノードから選択 |
| // | ドキュメント内で現在のノードから選択に一致するノードを、位置に関係なく選択 |
| . | 現在のノードを選択 |
| .. | 現在のノードの親ノードを選択 |
| @ | 属性を選択 |
次の表では、いくつかのパス表現とその結果を示しているよ。| パス表現 | 結果 |
| bookstore | bookstore要素のすべての子を選択 |
| /bookstore | ルート要素bookstoreを選択。パスがスラッシュ(/)で始まる場合、このパスは常に要素への絶対パスを表す |
| bookstore/book | bookstoreの子であるすべてのbook要素を選択 |
| //book | ドキュメント内の位置に関係なく、すべてのbook要素を選択 |
| bookstore//book | bookstore要素の下にある場所に関係なく、すべてのbook要素を選択 |
| //@lang | langという名前のすべての属性を選択 |
条件式#
特定のノードや指定された値を含むノードを見つけるために条件式を使うことができるよ。次の表では、条件式を含むいくつかのパス表現とその結果を示しているよ。| パス表現 | 結果 |
| /bookstore/book[1] | bookstoreの子要素の最初のbook要素を選択 |
| /bookstore/book[last()] | bookstoreの子要素の最後のbook要素を選択 |
| /bookstore/book[last()-1] | bookstoreの子要素の最後から2番目のbook要素を選択 |
| /bookstore/book[position()] | bookstoreの子要素の最初の2つのbook要素を選択 |
| //title[@lang] | langという属性を持つすべてのtitle要素を選択 |
| //title[@lang='eng'] | lang属性がengの値を持つすべてのtitle要素を選択 |
| /bookstore/book[price>35.00] | price要素の値が35.00より大きいbookstoreのすべてのbook要素を選択 |
| /bookstore/book[price>35.00]//title | price要素が35.00より大きいbookstoreのbook要素のすべてのtitle要素を選択 |
未知のノードの選択#
XPathのワイルドカードを使って、未知のXML要素を選択できるよ。| ワイルドカード | 説明 |
| * | 任意の要素ノードに一致 |
| @* | 任意の属性ノードに一致 |
| node() | 任意のタイプのノードに一致 |
次の表では、いくつかのパス表現とその結果を示しているよ。| パス表現 | 結果 |
| /bookstore/* | bookstore要素のすべての子要素を選択 |
| //* | ドキュメント内のすべての要素を選択 |
| //title[@*] | 属性を持つすべてのtitle要素を選択 |
複数のパスを選択#
パス表現で"|"演算子を使って、複数のパスを選択できるよ。次の表では、いくつかのパス表現とその結果を示しているよ。| パス表現 | 結果 |
| //book/title | //book/price | book要素のすべてのtitleとprice要素を選択 |
| //title | //price | ドキュメント内のすべてのtitleとprice要素を選択 |
| /bookstore/book/title | //price | bookstore要素のbook要素のすべてのtitle要素と、ドキュメント内のすべてのprice要素を選択 |
Modified at 2025-01-13 08:15:47