RE: [xsl] xslt 2 grouping

Subject: RE: [xsl] xslt 2 grouping
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Mon, 15 Jul 2002 10:11:23 +0100
> Mike wrote:
> > The XSLT 2.0 solution (untested) is:
> > 
> > <xsl:for-each-group select="e1" group-by=".">
> >   <e1 name="{.}">
> >     <xsl:for-each-group select="current-group()" group-by="@att">
> >       <xsl:value-of select="concat(@att, ' ')"/>
> >     </xsl:for-each>
> >   </e1>
> > </xsl:for-each>
> > 
> > You could also use distinct-values().
> 
> Hint :-) How please?
> 

I don't remember the problem well enough to be specific. But
distinct-values() (not implemented yet in Saxon 7.1) applied to a set of
nodes gives you a subset of those nodes in which no two nodes are
deep-equal to each other. Deep equality is a new concept in XPath 2.0,
for example <n>Michael <s>Kay</s></n> and <n>Michael Kay</n> have the
same string-value, but they are not deep-equal, and are therefore
considered distinct for the purpose of the distinct-values() function. 

The XSLT 2.0 grouping facilities do not (at present) use deep equality,
the above example will use string equality, but you could ask for
numeric equality if you wanted.

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx 



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


Current Thread