Latest web development tutorials

XPath構文

XPathは、XML文書内のノードまたはノードのセットを選択するために、パス式を使用しています。 パス(パス)または工程(ステップ)に沿ってノードで選択されました。


XMLインスタンス文書

私たちは、以下の例では、このXML文書を使用します。

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

<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文書内のノードを選択するために、パス式を使用しています。 またはノードを通る経路に沿ってステップを選択します。 以下に記載されている最も有用なパス式です:

表現 説明
ノード名 このノードのすべての子ノードを選択します。
/ ルートノードから選択します。
// 現在、場所に関係なく、ノードを選択し、一致するノードからドキュメントを選択します。
現在のノードを選択します。
.. 現在のノードの親を選択します。
@ [プロパティ]を選択します。

以下の表では、パス式と式の結果のいくつかをリストアップしました:

パス表現 結果
書店 書店要素のすべての子ノードを選択します。
/書店

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

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

書店/書籍 本屋にすべてのbook要素に属するサブ要素を選択します。
//ブック かかわらず、文書内の位置の、すべての本のサブ要素を選択します。
書店//ブック 関係なく、彼らは本屋にし、下にあるものの位置、書店要素の子孫に属するすべてのbook要素を選択していません。
// @ラング langの名前付きプロパティをすべて選択します。


述語(述語)

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

述語は角括弧内に埋め込まれています。

以下の表では、述語といくつかの経路式と式の結果をリストしました:

パス表現 結果
/書店/ブック[1] 書店最初のbook要素に属するサブ要素を選択します。
/書店/ブック[最後の()] 書店最後のbook要素に属するサブ要素を選択します。
/書店/ブック[最後の() - 1] 逆数書店第二book要素に属するサブ要素を選択します。
/書店/ブック[位置()<3] サブエレメントに属する書店要素の最初の2つのbook要素を選択します。
//タイトル[@lang] LANGという名前のすべての属性を選択すると、title要素を持っています。
//タイトル[LANG = 'ENG' @] すべてのtitle要素を選択し、これらの要素は、値ENG lang属性を持っています。
/bookstore/book[price>35.00] 書店要素、および35.00より大きくなければなりません価格要素の値のすべてのbook要素を選択します。
/bookstore/book[price>35.00]/title 書店要素のbook要素のすべてのtitle要素を選択し、前記price要素の値は35.00より大きくなければなりません。


未知のノードを選択

XPathのワイルドカードは、未知のXML要素を選択するために使用することができます。

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

以下の表では、我々はいくつかのパス式、ならびにこれらの式の結果をリストしました:

パス表現 結果
/書店/ * すべての子要素の書店要素を選択します。
// * 文書内のすべての要素を選択します。
//タイトル[@ *] title属性を持つすべての要素を選択します。


いくつかのパスを選択します

"|"パス式を使用することにより、オペレータが、あなたはいくつかのパスを選択することができます。

以下の表では、我々はいくつかのパス式、ならびにこれらの式の結果をリストしました:

パス表現 結果
//ブック/タイトル| //ブック/価格 すべての要素の本のタイトルと価格要素を選択します。
//タイトル| //価格 タイトルと価格要素のすべての文書を選択します。
/書店/書籍/タイトル| //価格 すべてのtitle要素に属する書籍の書店要素要素を選択し、すべての価格要素を文書化します。