XPath Location Path - Relative
Now that we've looked at absolute location paths, let's look at relative location paths.
A relative location path is one where the path starts from the node of your choosing — it doesn't need to start from the root node. This can reduce the amount of code you need to write — especially if you need to select many nodes that share the same name.
Example of a Relative Location Path
Consider the following XML document:
If we wanted to select the title
node of all albums, we could use the following (relative) location path:
The Result
This single line of code has exactly the same result as the example in the previous lesson. The only difference is that, in the previous lesson, we needed 3 lines of code to provide the same result.
So to just to make sure you understand what this line of code is doing, it is selecting all title nodes within our XML document. We don't need to provide the full path — just the name of the node we need to work with. This makes our like easier and keeps our code nice and clean.
Children
We can also select a node's children using relative location paths.
Example 1: Selecting the two children of the rock
node (title
and artist
). The context node is rock
, because that's where our relative path starts:
Example 2: Using a wildcard to select all children of the rock
node. This (single line of code) has the same result as the above two lines of code. Further, if another node was added to the XML document under the rock
node, it would be automatically included using the wildcard:
About the Wildcard
If you don't know what I mean by "wildcard", it is represented by the asterisk (*
). The wildcard represents any node that would be located where the wildcard is positioned. Therefore, using our example, it is representing any node that comes under the rock
node.
Wildcards don't have to appear at the end of a location path — they can also appear in the middle of a location path. We aren't limited to just one either — we could use as many as we like within a location path.