XPath selection by innertext
77,983
Solution 1
Have you tried this?
//myparent/mychild[text() = 'foo']
Alternatively, you can use the shortcut for the self
axis:
//myparent/mychild[. = 'foo']
Solution 2
Matt said it, but the full solution:
//myparent[mychild='foo']/mychild
Solution 3
You might consider using the contains
function to return true/false if the test was found like so:
//mychild[contains(text(),'foo')]
See XSLT, XPath, and XQuery Functions for functions reference
Author by
kdt
Updated on July 08, 2022Comments
-
kdt almost 2 years
I'm trying to extract an element with a particular innertext from a parsed XML document. I know that I can select an element that has a child with a particular innertext using
//myparent[mychild='foo']
, but I actually just want to select the "mychild" element in this example.<myparent> <mychild> foo </mychild> </myparent>
What would be the XPath query for "foo" that would return the "mychild" node?