Re: [xsl] compare two node sets

Subject: Re: [xsl] compare two node sets
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 19 Jan 2020 21:26:50 -0000
On 19.01.2020 22:21, Wolfhart Totschnig wolfhart.totschnig@xxxxxxxxxxx
wrote:
Thank you, David, Michael, and Liam for the prompt replies! Michael's
solution seems to be the simplest to implement. I use Saxon 9 HE, so
XPath 2.0 should be okay. And, indeed, quadratic performance should not
be an issue. However, Saxon throws the following error:

XPST0003: Unexpected token "every" at start of expression

Is there a typo in the expression? I used the expression as given:

<xsl:when test="count(//director) eq count(//author) and every $d in
//director satisfies some $a in //author satisfies deep-equal($d/*, $a/*)">

To clarify, the context node is the <film> element.

I think you need to put the `every` expression into parenthesis, and in the context of a `film` element it suffices to use child selection, so to simplify:

count(director) eq count(author) and (every $d in director satisfies
some $a in author satisfies deep-equal($d/*, $a/*))

Current Thread