This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: union/intersection on attribute values
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] union/intersection on attribute values
- From: Francis Norton <francis at redrice dot com>
- Date: Mon, 23 Apr 2001 09:16:42 +0100
- References: <20010423032409.36885.qmail@web12606.mail.yahoo.com>
- Reply-To: xsl-list at lists dot mulberrytech dot com
Dan Diebolt wrote:
>
>
> or poised another way, how do you de-dup $In2not1 to produce variable
> $In2not1_deduped"
>
> <xsl:variable name="In2not1_deduped" select="f($In2not1)"/>
>
Good question. To which I do not have an answer.
Nearest I got to it was this:
---
<xsl:template match="items">
<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:if test="generate-id() = generate-id($In2not1[. = current()])">
<xsl:value-of select="."/>
</xsl:if>
</xsl:for-each>
<br/>
$In2not1_deduped=
<xsl:variable name="In2not1_deduped" select="$In2not1[generate-id() =
generate-id($In2not1[. = current()])]"/>
<xsl:value-of select="$In2not1_deduped"/>
<br/>
</xsl:template>
---
which outputs:
---
C:\xml>saxon t.xml t.xslt
<?xml version="1.0" encoding="utf-8"?>
In1and2=
AC<br/>
In1not2=
B<br/>
In2not1=
DDDEEF<br/>
In2not1=
DEF<br/>
$In2not1_deduped=
<br/>
C:\xml>
---
The "generate-id() = generate-id($In2not1[. = current()])" expression
works as a test inside a for-each but not as a predicate on a select
attribute, I suspect because current() has a different scope.
I'm nose to grindstone today, so if anyone else has better ideas?
Francis.
> <items>
> <item id="1" set1="A"/>
> <item id="2" set1="B"/>
> <item id="3" set1="C"/>
> <item id="4" set2="A"/>
> <item id="5" set2="C"/>
> <item id="6" set2="D"/>
> <item id="7" set2="D"/>
> <item id="8" set2="D"/>
> <item id="9" set2="E"/>
> <item id="a" set2="E"/>
> <item id="b" set2="F"/>
> </items>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Auctions - buy the things you want at great prices
> http://auctions.yahoo.com/
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list