Re: [xsl] use contains() function on a node set in XPath 1.0

Subject: Re: [xsl] use contains() function on a node set in XPath 1.0
From: "Wendell Piez wapiez@xxxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 5 Mar 2022 15:49:18 -0000
Wolfhart --

Try this -- //notion[*[contains(.,'string')]]

It returns all notion elements with any children containing 'string'.

More concisely, //notion[contains(.,'string')] returns all notions
containing 'string' - which is the same thing if notions contain only
elements, not text nodes.

XPath 1.0 is still in scope for this list!

Enjoy, Wendell





On Sat, Mar 5, 2022 at 10:44 AM Wolfhart Totschnig
wolfhart.totschnig@xxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
wrote:

> Hello,
>
> My question is about XPath 1.0, not XSL, but I hope that I may still
> pose it here. The problem is, precisely, that I cannot use XSL because I
> am in a PHP context, using DOM to perform XPath queries on an XML document.
>
> The situation is the following: I have <notion> elements that contain
> one <name> element and zero or more <translation> elements. I want to
> select them according to whether any of these child elements contains a
> certain string. I was hoping that it would be as easy as this:
>
> //notion[contains(*, "string")]
>
> But then I realized that the contains() function evaluates only the
> first node of the set of child elements. So how can I do what I want to
> do? Since I am using DOM, I have to remain within XPath 1.0.
>
> Thanks in advance for your help!
> Wolfhart
> 
>
>

-- 
...Wendell Piez... ...wendell -at- nist -dot- gov...
...wendellpiez.com... ...pellucidliterature.org... ...pausepress.org...
...github.com/wendellpiez... ...gitlab.coko.foundation/wendell...

Current Thread