XPath find text in any text node

This expression //text() = 'Alliance Consulting' evals to a boolean.

In case of this test sample:

    <t>Alliance Consulting</t>
        <p>Test string
            <f>Alliance Consulting</f>
        Alliance Consulting
            Other string

It will return true of course.

Expression you need should evaluate to node-set, so use:

//text()[. = 'Alliance Consulting']

E.g. expression:

count(//text()[normalize-space() = 'Alliance Consulting'])

against the above document will return 3.

To select text nodes which contain 'Alliance Consulting' in the whole string value (e.g. 'Alliance Consulting provides great services') use:

//text()[contains(.,'Alliance Consulting')]

Do note that adjacent text nodes should become one after parser gets to the document.

Leave a Comment