ロケーション・パスには、絶対と相対の 2 種類があります。絶対パスは、固定参照点 (ルート・ノード) で開始します。 相対パスは、可変小数点 (コンテキスト・ノード) で開始します。
ロケーション・パスは、ノード (要素、属性、ネーム・スペース、コメントなど、 XML 文書の任意のパーツ) のコレクションであるノード・セットを戻します。 ロケーション・パスはロケーション・ステップから構成されます。各ステップは次の 2 つのパーツから成っています。
ロケーション・ステップは次のようなものです。
axis: node-test
それぞれをスラッシュで区切ることによって、複数のロケーション・ステップを結合することができます。 結果のロケーション・パスの各ステップが、そのステップの次のパスのコンテキスト・ノードを設定します。
構文参照オプションにアクセスするには、「XPath 式」ウィザード内の「参照 (Reference)」タブをクリックします。
各 XPath ロケーション・ステップは、コンテキスト・ノードから軸に沿って移動します。たとえば、 軸として child を選択すると、XPath 式はコンテキスト・ノードのすべての子の検索を行います。
軸 | ノードが検索されるロケーション |
---|---|
ancestor:: | ルート・ノードおよびコンテキスト・ノードを含むすべての要素ノード。 |
ancestor-or-self:: | コンテキスト・ノードのすべての祖先、およびノード自体。 |
attribute:: | コンテキスト・ノードのすべての属性。 |
child:: | コンテキスト・ノードのすべての子。属性ノードとネーム・スペース・ノードは、親ノードを持ってはいても、どのノードの子でもありません。 これはデフォルト値です。 |
descendant:: | コンテキスト・ノード内に含まれるすべてのノード、つまり、子、子の子など。 ルート・ノードと要素ノードだけが子孫を持っています。 子軸同様、子孫軸にも、 属性ノードまたはネーム・スペース・ノードは含まれません。 |
descendant-or-self:: | コンテキスト・ノードの子孫またはコンテキスト・ノード自体。 |
following:: | コンテキスト・ノードの終了後に開始するすべてのノード。 ただし、属性ノードとネーム・スペース・ノードは除きます。 |
following-sibling:: | コンテキスト・ノードの終了に続く、同じ親ノードを持つすべてのノード。 属性ノードとネーム・スペース・ノードに兄弟はありません。 |
namespace:: | コンテキスト・ノードのスコープ内のすべてのネーム・スペース。 |
parent:: | 即時にコンテキスト・ノードを含む要素ノードまたはルート・ノード。 ルート・ノードのみ親ノードを持っていません。 |
preceding:: | コンテキスト・ノードの開始前に終了するすべてのノード。ただし、属性ノードとネーム・スペース・ノードは除きます。 |
preceding-sibling:: | コンテキスト・ノードの開始に先行する、同じ親ノードを持つすべてのノード。 属性ノードとネーム・スペース・ノードに兄弟はありません。 |
self:: | コンテキスト・ノード自体。 |
各ロケーション・ステップは、少なくとも 1 つの軸と 1 つのノード・テストを持っています。ノード・テストは、 ロケーション・ステップで選択されたノードをさらに詳細化します。たとえば、 ロケーション・ステップとして child:: comment( ) を指定すると、 XPath 式はコンテキスト・ノードのすべてのコメント・ノードの子を戻します。
ノード | 戻される値 |
---|---|
* | 名前に関係なく、すべての要素を選択する。たとえば、 child::* と指定すると、コンテキスト・ノードの全要素の子が選択され、 attribute::* と指定すると、コンテキスト・ノードの全属性が選択されます。 |
comment ( ) | 全コメント・ノード。 |
node( ) | タイプに関係なく、全ノード。 |
processing-instruction ('target' ) | 引き数を指定しないと、すべての処理命令が戻される。単一ストリングの引き数 target を指定すると、 指定のターゲットを持つすべての処理命令が選択されます。 |
text( ) | 全テキスト・ノード。たとえば、child::text() と指定すると、 コンテキスト・ノードの全テキスト・ノードの子が選択されます。 |
ノード・セット
演算子 | 関数 |
---|---|
| | これは共用体演算子です。2 つのノード・セットを取り出し、 そのノード・セット内のすべてのノードを (重複するノードを除去した後で) 結合します。 |
/ | すべての子ノードを選択します。 |
// | 子孫ノードを選択します。 |
ブール値
ブール演算子を使用して、ストリング、数式またはブール値を比較することができます。
演算子 | 戻り |
---|---|
<= | 1 番目の数式の値が 2 番目の数式の値より小か等しい場合は true、 そうでない場合は false。 |
< | 1 番目の数式の値が 2 番目の数式の値より小さい場合は true、 そうでない場合は false。 |
>= | 1 番目の数式の値が 2 番目の数式の値より大か等しい場合は true、 そうでない場合は false。 |
> | 1 番目の数式の値が 2 番目の数式の値より大きい場合は true、 そうでない場合は false。 |
= | (ストリングまたは数値の) どちらの式にも同じ値がある場合は true、 そうでない場合は false。 |
!= | (ストリングまたは数値の) 両方の式に同じ値がない場合は true、 そうでない場合は false。 |
and | どちらのブール値も true の場合は true、そうでない場合は false。 |
or | どちらの値も false の場合にのみ false、それ以外の場合は true です。 |
数値
以下の演算子を使用して、数値を操作することができます。
演算子 | 戻り |
---|---|
+ | 2 つの数式の和。 |
- | 1 番目の数式から 2 番目の数式を引いた差。 |
* | 2 つの数式の積。 |
div | 1 番目の数式を 2 番目の数式で割った値。 |
mod \ | 1 番目の数式を 2 番目の数式で割った余り。 |