[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] union/intersection on attribute values


Subject: Re: [xsl] union/intersection on attribute values
From: Francis Norton <francis@xxxxxxxxxxx>
Date: Sun, 22 Apr 2001 00:09:12 +0100


Dan Diebolt wrote:
> 
> DC on set1 and  set2> select="item/@set1[. = /items/item/@set2]"
> DC on set1 less set2> select="item/@set1[not(. = /items/item/@set2)]"
> DC on set2 less set1> select="item/@set2[not(. = /items/item/@set1)]"
> 
> FN>select="string(item/@set2[not(. = /items/item/@set1)])"
> FN>is an alternative way of de-duping the results.
> 
> string() doesn't dedup the Venn pieces for me.
> 

*deep blush*

Don't know what was going through my head this morning when I suggested
a method of selecting the first element of a node-set (which could
anyway be done better by applying a "[1]") as a method of de-duplicating
the whole list.

Here's a solution which actually works.

I'm going back into lurk mode :)

Francis.

<?xml version="1.0"?>
<!-- quotes.xsl: Transform to Quote.dtd vocabulary -->
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="xml" indent="yes"/>
	<xsl:template match="items">
		<xsl:variable name="In1and2" select="item/@set1[. =
/items/item/@set2]"/>
 In1and2=
		<xsl:for-each select="$In1and2">
			<xsl:value-of select="."/>
		</xsl:for-each>
		<br/>
		<xsl:variable name="In1not2" select="item/@set1[not(. =
/items/item/@set2)]"/>
 In1not2=
		<xsl:for-each select="$In1not2">
			<xsl:value-of select="."/>
		</xsl:for-each>
		<br/>
		<xsl:variable name="In2not1" select="item/@set2[not(. =
/items/item/@set1)]"/>
 In2not1=
		<xsl:for-each select="$In2not1">
			<xsl:value-of select="."/>
		</xsl:for-each>
		<br/>
 In2not1=
		<xsl:for-each select="$In2not1">
			<xsl:variable name="v" select="."/>
			<xsl:if test="generate-id() = generate-id($In2not1[. = $v])">
				<xsl:value-of select="."/>
			</xsl:if>
		</xsl:for-each>
		<br/>
	</xsl:template>
</xsl:transform>

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread