XPath expression to "select all"?

J

JS

I have this XML file:

<root id="root" >
<head>
<section secid="section">
<subsection>
<item order="0">
<data id="D1" value="red"/>
<data id="D2" value="blue"/>
</item>
<item order="1">
<data id="D1" value="green"/>
<data id="D2" value="yellow"/>
</item>
<item order="2">
<data id="D1" value="black"/>
<data id="D2" value="white"/>
</item>
</subsection>
</section>
</head>
</root>

I would like to create a XPath expression that selects all values where data
id="D1". The result should be:

red
green
black

I have tried something like (assuming that we are standing in root):

/head/section/subsection/item/data[@id="D1"]/@value

but it only returns the first value:

red

How do I get the values from the remaining item elements?
 
J

Joe Kesselman

JS said:
/head/section/subsection/item/data[@id="D1"]/@value

but it only returns the first value:

Actually, it is returning all the values, but the string value of a set
of results is the string value of the first result.

To get the rest, you need to iterate through the results. How you do
that depends on the tool you're using to execute this XPath.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,575
Members
45,053
Latest member
billing-software

Latest Threads

Top