Axes
To this point, we’ve been able to select child elements, attributes, text, comments, and processing instructions with some fairly simple XPath expressions. Obviously, we might want to select many other things, such as:
All ancestors of the context node
All descendants of the context node
All previous siblings or following siblings of the context node (siblings are nodes that have the same parent)
To select these things, XPath provides a number of
axes (plural of axis) that let you specify
various collections of nodes. There are 13 axes in all; we’ll discuss
all of them here, even though most won’t be particularly useful to
you. To use an axis in an XPath expression, type the name of the axis,
a double colon (::
), and the name
of the element you want to select, if any.
Before we define all of the axes, though, we need to talk about XPath’s unabbreviated syntax.
Unabbreviated syntax
To this point, all the XPath expressions we’ve looked
at used the XPath abbreviated syntax. Most of
the time, that’s what you’ll use; however, most of the lesser-used
axes can only be specified with the unabbreviated syntax. For
example, when we wrote an XPath expression to select all of the
<line>
elements in the
current context, we used the abbreviated syntax:
<xsl:apply-templates select="line"/>
If you really enjoy typing, you can use the unabbreviated
syntax to specify that you want all of the <line>
children of the current
context:
<xsl:apply-templates select="child::line"/>
We’ll go through all of the ...
Get XSLT, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.