This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Standard XPath expression for the intersection of two node sets (Was: RE: How can I test if an node included in a nodeset)
- To: xsl-list at mulberrytech dot com
- Subject: Standard XPath expression for the intersection of two node sets (Was: RE: How can I test if an node included in a nodeset)
- From: Dimitre Novatchev <dnovatchev at yahoo dot com>
- Date: Wed, 2 Aug 2000 06:03:46 -0700 (PDT)
- Reply-To: xsl-list at mulberrytech dot com
Michael Kay is the person, who discovered the XPath expression for the
intersection of two node-sets. Therefore, there's no need for a
node-set intersection extension function.
You can find this in http://p2p.wrox.com --> markup --> xslt, message
#46 of a set of 95.
Must I say that I enjoyed reading his book enormously!!!
Here's Mike's reply to my suggestion that intersecting two node-sets
doesn't need an extension function:
-----------------------------------
Date: Tue, 11 Jul 2000 09:25:14 +0100
Author: Kay Michael <Michael.Kay@icl.com>
Subject: Re: Q: An efficient way to test if a node belongs to a node
list
Body: > I believe this is not true! Here's how to output the
> intersection of two node-sets, ...
>
> MHK: But saying things can't be done is dangerous, it wouldn't
> surprise me to be proved wrong on this one.
I had a think about this in the bath. The following expression finds
the intersection of $ns1 and $ns2
$ns1[count(.|$ns2)=count($ns2)]
So I've proved myself wrong before anyone else got the chance to do
it first.
Mike Kay
-------------- Original message ----------------
Date: Wed, 2 Aug 2000 09:56:58 +0100
From: Kay Michael <Michael.Kay@icl.com>
Subject: RE: How can I test if an node included in a nodeset
> I have a selected a nodeset in a variable($nodeset) and now I
> would compare this nodeset to an node and I would detect if this node
> included in the nodeset.
>
This is surprisingly difficult. Saxon and xt both provide
intersection() as
an extension function. The only way of doing it within the standard is
to
rely on union:
count($nodeset) = count($nodeset | $node)
will be true iff $node is a member of $nodeset.
Mike Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
__________________________________________________
Do You Yahoo!?
Kick off your party with Yahoo! Invites.
http://invites.yahoo.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list