[xsl] unique attribute values in XSLT2 - storing them in a variable

Subject: [xsl] unique attribute values in XSLT2 - storing them in a variable
From: <jozef.aerts@xxxxxxxxxxxxxx>
Date: Tue, 22 Feb 2005 11:52:04 +0100
Dear all,

I am making the transition now from XSLT1 to XSLT2

I have the following XML:

<?xml version="1.0" encoding="UTF-8"?>
<A at1="1" at2="2">
	<B atb="3">
		<C atc="a"/>
		<C atc="b"/>
	</B>
	<B atb="3">
		<C atc="a"/>
		<C atc="c"/>
	</B>
</A>

I need to find all unique values of the @atc attribute, and store them
in a variable for later use.
That was no problem in XSLT1, but I still have some problems in XSLT2.

This is what I have:

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="2.0">
	<xsl:template match="/">
		<xsl:apply-templates select="A"/>
	</xsl:template>
	
	<xsl:template match="A">
	<xsl:for-each-group select="B/C"
                      group-by=".">
    		<xsl:sort select="." />
    		<xsl:value-of select="." />
    		<xsl:for-each select="distinct-values(current-group()/@atc)">
      			distinct @atc = <xsl:value-of select="." />
    		</xsl:for-each>
    	</xsl:for-each-group>
	</xsl:template>
</xsl:stylesheet>

This indeed gives:
distinct @atc = a
distinct @atc = b
distinct @atc = c

But how do I store these values in a variable for later use ?

Many thanks in advance

Jozef

Current Thread