XPath 仕様では 13 種類の軸 (Axis) が定められています。軸はコンテキストノードとの関連性を表し、ツリー上でのノードのコンテキストノードからの相対的な位置を示すのに用いられます。

XPath 式の使用に関するより詳しい情報は、 XSLT による XML の変換の記事の最後のさらなる読み物の節を参照してください。また、XPath 仕様書の 'axes' の節も参照してください。

ancestor

コンテキストノードの親ノードからルートノードまでのすべての祖先を示します。

ancestor-or-self

コンテキストノードと、そのすべてのルートノードを含む祖先を示します。

attribute

コンテキストノードの属性を示します。属性を持つのは要素のみです。この軸はアットマーク (@) によって省略できます。

child

コンテキストノードの子を示します。 XPath 式で軸が指定されていなければ、デフォルトでこの軸が指定されていると認識されます。子を持つのはルートノードか要素ノードのみなので、他のノードでこの軸を使用しても何も選択されません。

descendant

コンテキストノードのすべての子と、そのすべての子と、そのまたすべての・・・というように示します。属性ノードと名前空間ノードは含まれませんattribute ノードの parent は要素ノードですが、attribute ノードはその要素ノードの子ではないからです。

descendant-or-self

コンテキストノードと、そのすべての子孫を示します。属性ノードと名前空間ノードは含まれませんattribute ノードの parent は要素ノードですが、attribute ノードはその要素ノードの子ではないからです。

following

コンテキストノードの後に現れる、descendantattributenamespace ノードを除くすべてのノードを示します。

following-sibling

コンテキストノードと同じ親を持ち、ソース文書内でコンテキストノードの後に現れるすべてのノードを示します。

namespace (未対応)

コンテキストノードのスコープ内にあるすべてのノードを示します。この場合、コンテキストノードは要素ノードでなければなりません。

parent

コンテキストノードの親である単一のノードを示します。この軸は 2 つのピリオド (..) によって省略できます。

preceding

文書内でコンテキストノードの前に現れる、 ancestorattributenamespace ノードを除くすべてのノードを示します。

preceding-sibling

コンテキストノードと同じ親を持ち、ソース文書内でコンテキストノードの前に現れるすべてのノードを示します。

self

コンテキストノード自身を示します。 この軸はピリオド (.) によって省略できます。