次の方法で共有


ロケーション パス

ロケーション パスは、コンテキスト ノードと相対的なノード セットを選択するために使用する XPath 式です。 ロケーション パス式を評価した結果として、ロケーション パスで指定したノードを含むノード セットが返されます。 ロケーション パスには、ノード セットをフィルターするために使用する式を再帰的に含めることができます。

構文上、ロケーション パスは 1 つ以上のロケーション ステップから構成され、各ロケーション ステップはフォワード スラッシュ (/) で区切られます。

locationstep/locationstep/locationstep

各ロケーション ステップにより、コンテキスト ノードに対して (つまり、直前のロケーション ステップで選択されたノードに対して) 相対的にノード セットが選択されます。 こうしたロケーション パスは相対ロケーション パスとなります。 絶対ロケーション パスはルート要素から開始します。

/locationstep/locationstep/locationstep

ロケーション パスの中で、ロケーション ステップは左から右に評価されます。 左端のロケーション ステップにより、コンテキスト ノードに相対的にノード セットが選択されます。 これらのノードは、次のロケーション ステップの処理でコンテキスト ノードとなります。 すべてのロケーション ステップが処理されるまで、このステップの処理とコンテキスト ノードの更新が繰り返されます。

ロケーション パスでは完全表記と省略表記を使用することができます。

完全表記のロケーション パスでのロケーション ステップは次の構文となります。

axis::node-test[predicate]

この構文で、axis はロケーション ステップで選択されるノードとコンテキスト ノードの関係を示します。node-test は、ロケーション ステップで選択されるノードの型と展開名を示します。そして predicate は、ロケーション ステップ中でノードの選択をさらに詳細に行うためのフィルター式です。 この述語は省略できます。 省略した場合、ロケーション ステップは axis:: および node-test だけで構成されます。 次の表に例を示します。

完全表記のロケーション パス 説明

child::para[last()]

コンテキスト ノードに対して最後の <para> 要素を選択します。

parent::para

コンテキスト ノードの親である <para> 要素を選択します。

child::text()

コンテキスト ノードの、すべてのテキスト ノードの子を選択します。

child::div/child::para

コンテキスト ノードの子である <div> 要素の <para> 子要素を選択します。

省略表記のロケーション パスでは、ロケーション ステップ内に軸の指定 axis:: を明示的に使用せず、代わりに一組の略記法を使用します。 次の表に例を示します。

省略表記のロケーション パス 説明

para

コンテキスト ノードの <para> 要素を選択します。

../para

コンテキスト ノードの親である <para> 要素を選択します。

text()

コンテキスト ノードの、すべてのテキスト ノードの子を選択します。

./div/para

コンテキスト ノードの子である <div> 要素の子である <para> 要素を選択します。

以下はいくつかの略記法のまとめです。

完全表記 省略形

child::*

*

attribute::*

@*

/descendant-or-self::node()

//

self::node()

.

parent::node()

..

このセクションの内容

以下のトピックではロケーション パスの各部の構文と使用法を詳細に説明しています。