Subject: RE: [xsl] Sorting and grouping From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx> Date: Wed, 2 Oct 2002 11:24:28 +0100 |
> I have a non-sorted list I want to sort, but I also want to > know when a group is new. Try not to think so procedurally: you're not interested in when things happen, only in how the output is functionally related to the input. Generally with sorting-then-grouping problems I advise a two-phase transformation, using a temporary tree (result tree fragment) as the intermediate result. This needs the xx:node-set() extension to access this tree in the second phase. Michael Kay Software AG home: Michael.H.Kay@xxxxxxxxxxxx work: Michael.Kay@xxxxxxxxxxxxxx I've managed to do this using > for-each, sort and an if with a "not preceding". (Thanks to > the faq and posts in this list) > > But the "not preceding" is not looking at the sorted order - > it's looking at the orginal order in the XML-file. I want it > to "search" the sorted list. > > Example: > > XSL: > <xsl:output method="html" /> > > <xsl:template match="check"> > <html> > <table border="1"> > <tr><th>new</th><th>i</th><th>g</th></tr> > <xsl:for-each select="news"><xsl:sort select="@i" > order="descending"/> <tr> <td><xsl:if > test="not(preceding::g=g)">*</xsl:if></td> > <td><xsl:value-of select="@i"/></td> > <td><xsl:value-of select="g"/></td> > </tr> > </xsl:for-each> > > </table> > </html> > </xsl:template> > > </xsl:stylesheet> > > XML: > <check> > <news i="6"><g>3</g></news> > <news i="1"><g>2</g></news> > <news i="5"><g>2</g></news> > <news i="4"><g>1</g></news> > <news i="3"><g>1</g></news> > <news i="2"><g>3</g></news> > </check> > > This outputs : (n = new, i=item, g=group) > n i g > * 6 3 > 5 2 > * 4 1 > 3 1 > 2 3 > * 1 2 <- i=1 is the first use of group 2 in the XML > > > But I want it to output : > > n i g > * 6 3 > * 5 2 <- i=5 is the first use of group 2 in the sorted list > * 4 1 > 3 1 > 2 3 > 1 2 > > > Thanks in advance for any help! > > Regards > Martin Gundersen > martin@xxxxxxxxxxxxx > Oslo, Norway > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Sorting and grouping, Martin Gundersen | Thread | [xsl] xsd- abstract definition, Laura Jenkins |
Re: [xsl] Looping using XSL, Jeni Tennison | Date | Re: [xsl] Predicates using current , Oleg Tkachenko |
Month |