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