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

[xsl] RE: xslt 2 grouping


Subject: [xsl] RE: xslt 2 grouping
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Mon, 15 Jul 2002 10:34:53 -0700 (PDT)

--- "Michael Kay" <michael dot h dot kay at ntlworld dot com> wrote:

> 
> > 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.

While distinct-values() is still not implemented in Saxon 7.0, one can
use makeDistinct.xsl from the FXSL library.

See: 
http://sources.redhat.com/ml/xsl-list/2001-12/msg00806.html

Because the library underwent some significant changes since that early
time (Dec. 2001), the source code has to be modified as follows:

replace:

      <xsl:if test="not($arg2/@id = $arg1/*/@id)">

with:

      <xsl:if test="not($arg2/@id = $arg1/@id)">


Hope this helped.



=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL

__________________________________________________
Do You Yahoo!?
Yahoo! Autos - Get free new car price quotes
http://autos.yahoo.com

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



Current Thread
Keywords