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.
Get XML in a Nutshell, 3rd 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.