Trying to select an element based on the value of one of it's childrens childrens
Thinking the following but not working, appreciate any help, thanks
./book[/author/name = 'John']
or
./book[/author/name text() = 'John']
Want all books where the author name = 'John'
Xml file
<list>
<book>
<author>
<name>John</name>
<number>4324234</number>
</author>
<title>New Book</title>
<isbn>dsdaassda</isbn>
</book>
<book>...</book>
<book>...</book>
</list>
Almost there. In your predicate, you want a relative path, so change
./book[/author/name = 'John']
to either
./book[author/name = 'John']
or
./book[./author/name = 'John']
and you will match your element. Your current predicate goes back to the root of the document to look for an author
.
Success story sharing
.
didn't work for me (needed./author/name
)./book[contains(author/name, "John")]
?'
rather than double quotes"
for string literals in xpath, by the way.