'How to select the first element with a specific element using XPath
I need to do something similar to this:
How to select the first element with a specific attribute using XPath
Instead of evaluating the attribute content, I need to evaluate the child element value. Let's say the value is in the field book and I have to select the category node containing a specific book value. I tried this but with no success.
/bookstore/category[//book/text()='A2']
This is the source document.
<bookstore>
<category>
<book>A1</book>
<book>A2</book>
</category>
<category>
<book>B1</book>
<book>B2</book>
</category>
</bookstore>
I need my xpath expression to return only the category with book=A2 but now it returns both category nodes.
Solution 1:[1]
The issue with your xpath is that //book
is selecting all book
elements.
Try this instead: /bookstore/category[book='A2']
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Daniel Haley |