So my misunderstanding of "=" is that it is comparing values, not nodes--I
clearly never understood that properly.
That then explains why an empty element would produce the results I was
seeing: "" is equal to any other empty node.
Doh!
I will try Mike's intersection expression.
Cheers
W.
--
Eliot Kimber
http://contrext.com
o;?On 2/23/18, 6:39 PM, "Michael Kay mike@xxxxxxxxxxxx"
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> On 24 Feb 2018, at 00:18, G. Ken Holman g.ken.holman@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Ignore that second expression ... I wrote it too hastily and I'm now
back at my desk to think about it.
>
> This would work I think:
>
> <xsl:value-of select="some $this in .//* satisfies
> some $that in $elements-to-keep
> satisfies $this is $that"/>
>
I think that's equivalent to saying that the intersection of the two sets
is non empty:
select="exists(.//* intersect $elements-to-keep)"
Michael Kay
Saxonica
|