Re: [xsl] Getting Unexpected Results from .//* = $set-of-elements

Subject: Re: [xsl] Getting Unexpected Results from .//* = $set-of-elements
From: "Eliot Kimber ekimber@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 24 Feb 2018 20:17:20 -0000
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

Current Thread