Building Compound Location Paths from Location Steps with /
Location steps can be combined with a forward slash
(/) to make a compound location
path. Each step in the path is relative to the one that preceded it.
If the path begins with /, then
the first step in the path is relative to the root node. Otherwise, it’s relative to the context
node. For example, consider the XPath expression /people/person/name/first_name. This
begins at the root node, then selects all people element children of the root node,
then all person element children
of those nodes, then all name
children of those nodes, and finally all first_name children of those nodes.
Applied to Example 9-1, it
indicates these two elements:
<first_name>Alan</first_name> <first_name>Richard</first_name>
To indicate only the textual content of those two nodes, we
have to go one step further. The XPath expression /people/person/name/first_name/text( )
selects the strings “Alan” and “Richard” from Example 9-1.
These two XPath expressions both began with /, so they’re absolute location paths that start at the root.
Relative location paths can also count down from the context node.
For example, the XPath expression person/@id selects the id attributes of the person child elements of the context
node.