XML > XPath > 軸(axis)
軸(axis)とは
ツリー構造におけるノード間の関係を示すもの。
軸の種類
軸の種類 | 概要 |
---|---|
ancestor | コンテキストノードの祖先ノード ルートノードも含む |
ancestor-or-self | コンテキストノードとその祖先ノード ルートノードも含む |
attribute | コンテキストノードの属性ノード |
child | コンテキストノードの子ノード |
descendant | コンテキストノードの子孫ノード ただし属性ノード・名前空間ノードは除く |
descendant-or-self | コンテキストノードとその子孫ノード |
following | コンテキストノードに後続する全てのノード ただし子孫ノード・属性ノード・名前空間ノードは除く |
following-sibling | コンテキストノードに後続する兄弟ノード ただしコンテキストノードが属性ノード・名前空間ノードの場合は空になる |
namespace | コンテキストノードの名前空間ノード |
parent | コンテキストノードの親ノード |
preceding | コンテキストノードより先行する全てのノード ただし祖先ノード・属性ノード・名前空間ノードは除く |
preceding-sibling | コンテキストノードより先行する兄弟 ただしコンテキストノードが属性ノード・名前空間ノードの場合は空になる |
self | コンテキストノード自身 |
上記を以下の省略系で記述できる。
軸 | 省略記法 | 例(省略なし→省略系) |
---|---|---|
child:: | 何も記述しない | child::member → member |
attribute:: | @ | attribute::name → @name |
self::node() | . | self::node()/attribute::name → ./@name |
parent::node() | .. | parent::node()/attribute::name → ../@name |
descendant-or-self::node() | // | descendant-or-self::node() → // |