Subject: XPath 1.0 Question: Can two sibling nodes each select their parent node to yield two nodes?
From: "Costello, Roger L." <costello@xxxxxxxxx>
Date: Wed, 22 Sep 2010 17:08:54 -0400
|
Hi Folks,
This is an XPath 1.0 question.
Consider this document:
<?xml version="1.0" encoding="UTF-8"?>
<books>
<category>
<genre>Autobiography</genre>
<book>
<name>My Life and Times</name>
<author>Paul McCartney</author>
</book>
<book>
<name>The Beatles</name>
<author>Paul McCartney</author>
</book>
</category>
<category>
<genre>Music</genre>
<book>
<name>Eight Days a Week</name>
<author>Paul McCartney</author>
</book>
</category>
</books>
I would like to select the value of <genre> of each <book> with <author> equal
to 'Paul McCartney'. Thus, I want the XPath to yield:
Autobiography
Autobiography
Music
I thought that either of these XPath expressions would do the job:
//book[author='Paul McCartney']/../genre
//book[author='Paul McCartney']/preceding-sibling::genre
However, both result in this:
Autobiography
Music
What XPath 1.0 expression will produce the desired result?
/Roger
|