XPath 仕様では 13 種類の軸が定められています。軸はコンテクストノードとの関連性を表し、ツリー上でのノードのコンテクストノードからの相対的な位置を示すのに用いられます。以下は XPath で利用できる 13 種類の軸のごく簡単な説明と、Gecko における対応状況を示したものです。
XPath 式の使用に関するより詳しい情報は、XSLT による XML の変換の記事の最後のより詳しい読み物の節を参照して下さい。
- ancestor
- コンテクストノードの親ノードからルートノードまでの全ての祖先を示します。
- ancestor-or-self
- コンテクストノードと、その全てのルートノードを含む祖先を示します。
- attribute
- コンテクストノードの属性を示します。属性を持つのは要素のみです。この軸はアットマーク (
@
) によって省略できます。 - child
- コンテクストノードの子を示します。 XPath 式で軸が指定されていなければ、デフォルトでこの軸が指定されていると認識されます。子を持つのはルートノードか要素ノードのみなので、他のノードでこの軸を使用しても何も選択されません。
- descendant
- コンテクストノードの全ての子と、その全ての子と、そのまた全ての・・・というように示します。属性ノードと名前空間ノードは含まれません。
attribute
ノードのparent
は要素ノードですが、attribute
ノードはその要素ノードの子ではないからです。 - descendant-or-self
- コンテクストノードと、その全ての子孫を示します。属性ノードと名前空間ノードは含まれません。
attribute
ノードのparent
は要素ノードですが、attribute
ノードはその要素ノードの子ではないからです。 - following
- コンテクストノードの後に現れる、
descendant
、attribute
、namespace
ノードを除く全てのノードを示します。 - following-sibling
- コンテクストノードと同じ親を持ち、ソース文書内でコンテクストノードの後に現れる全てのノードを示します。
- namespace (未対応)
- コンテクストノードのスコープ内にある全てのノードを示します。この場合、コンテクストノードは要素ノードでなければなりません。
- parent
- コンテクストノードの親である単一のノードを示します。この軸は 2 つのピリオド (
..
) によって省略できます。 - preceding
- 文書内でコンテクストノードの前に現れる、
ancestor
、attribute
、namespace
ノードを除く全てのノードを示します。 - preceding-sibling
- コンテクストノードと同じ親を持ち、ソース文書内でコンテクストノードの前に現れる全てのノードを示します。
- self
- コンテクストノード自身を示します。 この軸はピリオド (
.
) によって省略できます。