Re: [xsl] Question on Kaysian method for set intersection

Subject: Re: [xsl] Question on Kaysian method for set intersection
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Wed, 28 Mar 2012 12:39:19 +0100
On 28/03/2012 12:16, Hermann Stamm-Wilbrandt wrote:
I used Kaysian method as described in this document (section 1c), sofar:
http://www.xml.org//sites/www.xml.org/files/xslt_efficient_programming_techniques.pdf#page=3


Now I wanted to use it similarly for nodesets from different parts of document. That does not work because /flags[1]/flag[.='A'] is not the same node as /flags[2]/flag[.='A']. Is it possible to get the flag with "A" for $int and flags for "A", "B" and "C" for $uni? If so, with keys?

The so-called Kaysian method is a way of doing identity-based node-set intersection and difference in XSLT 1.0, which does not offer the "intersect" and "except" operators.

You seem to be wanting to do equality-based intersection and difference, which is actually much simpler, for example

$x/ns1/flags/flag[not(. = $x/ns2/flags/flag)]

selects the flags that are in ns1 but not in ns2.

Michael Kay
Saxonica

Current Thread