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

Share:
77,983
kdt
Author by

kdt

Updated on July 08, 2022

Comments

  • kdt
    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?