Home >
Online Product Documentation >
Table of Contents >
Supported Axes
Supported Axes
The XPath processor supports all XPath axes:
About the child Axis
The
child axis contains the children of the context node. The following examples select the
book children of the context node:
If the context node is the
bookstore element, each of these queries return the
book elements in
bookstore.xml. When you do not specify an axis, the
child axis is assumed.
About the descendant Axis
The
descendant axis contains the descendants of the context node. A descendant is a child or a child of a child, and so on. The
descendant axis never contains attribute nodes. The following example selects the
first-name element descendants of the context node:
If the context node is the
bookstore element, this query returns all
first-name elements in the document. If the context node is the first
publication element, this query returns the
first-name element that is in the
publication element.
About the parent Axis
The
parent axis contains the parent of the context node, if there is one. The following example selects the parent of the context node if it is a
title element:
If the first
title element in
bookstore.xml is the context node, this query returns the first
book element.
Note that dot dot
(
..) is equivalent to
parent::node().
About the ancestor Axis
The
ancestor axis contains the ancestors of the context node. The ancestors of the context node consist of the parent of the context node and the parent's parent, and so on. The
ancestor axis always includes the root node, unless the context node is the root node. The following example selects the
book ancestors of the context node:
If the context node is the first
title element in
bookstore.xml, this query returns the first
book element.
About the following-sibling Axis
The
following-sibling axis contains all the siblings of the context node that come after the context node in document order. If the context node is an attribute node or namespace node, the
following-sibling axis is empty. The following example selects the next
book sibling of the context node:
If the context node is the first
book element in
bookstore.xml, this query returns the second
book element.
About the preceding-sibling Axis
The
preceding-sibling axis contains all the siblings of the context node that precede the context node in reverse document order. If the context node is an attribute node or namespace node, the
preceding-sibling axis is empty. The following example selects the closest previous
book sibling of the context node:
If the context node is the third
book element in
bookstore.xml, this query returns the second
book element. If the context node is the first
book element, this query returns the empty set.
About the following Axis
The
following axis contains the nodes that follow the context node in document order. This can include
- Following siblings of the context node
- Descendants of following siblings of the context node
- Following siblings of ancestor nodes
- Descendants of following siblings of ancestor nodes
The
following axis never includes
The following example selects the
book elements that are following siblings of the context node and that follow the context node in document order:
If the context node is the first
book element, this query returns the last three
book elements. If the context node is the second
book element, this query returns only the third and fourth
book elements.
About the preceding Axis
The
preceding axis contains the nodes that precede the context node in reverse document order. This can include:
- Preceding siblings of the context node
- Descendants of preceding siblings of the context node
- Preceding siblings of ancestor nodes
- Descendants of preceding siblings of ancestor nodes
The
preceding axis never includes
The following example selects the
book elements that are preceding siblings of the context node and that precede the context node in document order:
If the third
book element is the context node, this query returns the first two
book elements. If the first
book element is the context node, this query returns the empty set.
About the attribute Axis
The
attribute axis contains the attributes of the context node. The
attribute axis is empty unless the context node is an element. The following examples are equivalent. They both select the
style attributes of the context node. The at sign (@) is an abbreviation for the
attribute axis.
If the context node is the second
book element, this query returns a
style attribute whose value is
textbook.
About the namespace Axis
The
namespace axis contains the namespace nodes that are in scope for the context node. This includes namespace declaration attributes for the
If more than one declaration defines the same prefix, the resulting node set includes only the definition that is closest to the context node.
If the context node is not an element, the
namespace axis is empty.
For example, if an element is in the scope of three namespace declarations, its
namespace axis contains three namespace declaration attributes.
About the self Axis
The
self axis contains just the context node itself. The following example selects the context node if it is a
title element:
Note that dot (
.)
is equivalent to
self::node().
About the descendant-or-self Axis
The
descendant-or-self axis contains the context node and the descendants of the context node. The following example selects the
first-name element descendants of the context node and the context node itself if it is a
first-name element:
If the context node is the
first-name element that is in the
author element in the second
book element, this query returns just the context node. If the context node is the second
book element, this query returns the two
first-name elements contained in the second
book element.
Note that
// is equivalent to
descendant-or-self::node(), while
//name is equivalent to
descendant-or-self::node()/child::name.
About the ancestor-or-self Axis
The
ancestor-or-self axis contains the context node and the ancestors of the context node. The
ancestor-or-self axis always includes the root node. The following example selects the
author element ancestors of the context node and the context node itself if it is an
author element:
If the context node is the
award element in the first
book element, this query returns the first
author element.