XPathパス式

XPathはパス式を使用して、XMLドキュメント内のノードまたはノードセットを選択します。ノードは、パスまたはステップに従って選択されます。

XMLサンプルドキュメント

次の例では、このXMLドキュメントを使用します。

<?xml version = "1.0" encoding = "ISO-8859-1"?> 

<bookstore> 

<book> 
  <title lang = "eng">ハリーポッター</ title> 
  <price> 29.99 </ price> 
</ book > 

<book> 
  <title lang = "eng"> Learning XML </ title> 
  <price> 39.95 </ price> 
</ book> 

</ bookstore>

ノードを選択

XPathはパス式を使用して、XMLドキュメント内のノードを選択します。ノードは、パスまたはステップに従って選択されます。

最も有用なパス式を以下に示します。

表情 説明文
ノード名 このノードのすべての子ノードを選択します。
/ ルートノードから選択します。
// 位置に関係なく、選択範囲と一致する現在のノードからドキュメント内のノードを選択します。
現在のノードを選択します。
.. 現在のノードの親ノードを選択します。
@ 属性を選択します。

次の表に、パス式と式の結果をいくつか示します。

パス式 その結果
本屋 bookstore要素のすべての子ノードを選択します。
/ bookstore

ルート要素の書店を選択します。

注:パスがスラッシュ(/)で始まる場合、このパスは常に要素への絶対パスを表します。

書店/本 本屋の子要素であるすべての本の要素を選択します。
//本 ドキュメント内での位置に関係なく、すべてのブックの子要素を選択します。
本屋//本 書店の下のどこにあるかに関係なく、書店要素の子孫であるすべての本要素を選択します。
// @ lang langという名前のすべての属性を選択します。

述語

述語は、特定のノードまたは指定された値を含むノードを見つけるために使用されます。

述語は角括弧で埋め込まれます。

次の表では、述語を含むパス式と式の結果をリストしています。

パス式 その結果
/ bookstore / book [1] bookstoreの子要素である最初のbook要素を選択します。
/ bookstore / book [last()] bookstoreの子要素である最後のbook要素を選択します。
/ bookstore / book [last()-1] 書店の子要素である最後から2番目のbook要素を選択します。
/ bookstore / book [position()<3] bookstore要素の子要素である最初の2つのbook要素を選択します。
//タイトル[@lang] langという名前の属性を持つすべてのタイトル要素を選択します。
//タイトル[@ lang = 'eng'] すべてのタイトル要素を選択します。これらの要素には、engの値を持つlang属性があります。
/bookstore/book[price>35.00] bookstore要素のすべてのbook要素を選択し、price要素の値は35.00より大きい必要があります。
/bookstore/book[price>35.00]/title bookstore要素でbook要素のすべてのtitle要素を選択します。price要素の値は35.00より大きい必要があります。

不明なノードを選択

XPathワイルドカードを使用して、不明なXML要素を選択できます。

ワイルドカード 説明文
* 任意の要素ノードに一致します。
@ * 任意の属性ノードに一致します。
ノード() 任意のタイプのノードに一致します。

次の表に、パス式とこれらの式の結果を示します。

パス式 その結果
/ bookstore / * bookstore要素のすべての子要素を選択します。
// * ドキュメント内のすべての要素を選択します。
//題名[@*] 属性を持つすべてのタイトル要素を選択します。

複数のパスを選択

パス式で「|」演算子を使用すると、複数のパスを選択できます。

次の表に、パス式とこれらの式の結果を示します。

パス式 その結果
//本/タイトル| //本/価格 book要素のすべてのタイトルと価格要素を選択します。
// title | //価格 ドキュメント内のすべてのタイトルと価格要素を選択します。
/ bookstore / book / title | //価格 bookstore要素のbook要素に属するすべてのtitle要素と、ドキュメント内のすべてのprice要素を選択します。
元の記事210件を公開 賞賛された37件 17万回以上+

おすすめ

転載: blog.csdn.net/u012757419/article/details/103802248