XPath Axes
The XPath specification defines thirteen different axes; each axis contains various nodes. The nodes that are in a given axis depend on the context node. All 13 axes, excerpted from our more involved discussion in Section 3.1 in Chapter 3, are listed here.
-
childaxis Contains the children of the context node. As we’ve already mentioned, the XPath expressions
child::lines/child::lineandlines/lineare equivalent. If an XPath expression (such as/sonnet) doesn’t have an axis specifier, thechildaxis is used by default.-
parentaxis Contains the parent of the context node, if there is one. (If the context node is the root node, the parent axis returns an empty node-set.) This axis can be abbreviated with a double period (
..). The expressionsparent::sonnetand../sonnetare equivalent. If the context node does not have a<sonnet>element as its parent, these XPath expressions return an empty node-set.-
selfaxis Contains the context node itself. The
selfaxis can be abbreviated with a single period (.).-
attributeaxis Contains the attributes of the context node. If the context node is not an element node, this axis is empty. The
attributeaxis can be abbreviated with the at sign (@). The expressionsattribute::typeand@typeare equivalent.-
ancestoraxis Contains the parent of the context node, the parent’s parent, and so on. The
ancestoraxis always contains the root node, unless the context node is the root node.-
ancestor-or-selfaxis Contains the context node, its parent, ...