Subject: Re: [xsl] Sort-grouping problem From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Wed, 17 Apr 2002 00:26:11 +0100 |
Hi Ragulf, > Problem with the second stylesheet is that while the result is > grouped by date, it is grouped by how the dates appear in document > order, which I have no controll over, and I want it by date > descending like in the first stylesheet. You're currently using xsl:for-each to iterate over the unique dates; why not sort them in the same way as you were before (remembering that the context nodes are Date elements this time rather than News elements)? <xsl:template name="group-by-date"> <xsl:variable name="unique-dates" select="/NewsList/List/News [not(Date=preceding-sibling::News/Date)]/Date"/> <xsl:for-each select="$unique-dates"> <xsl:sort select="substring(.,7,4)" data-type="number" /> <xsl:sort select="substring(.,5,2)" data-type="number" /> <xsl:sort select="substring(.,1,2)" data-type="number" /> Date is: <xsl:value-of select="."/><br/> <xsl:for-each select="/NewsList/List/News[Date=current()]"> <H1><xsl:value-of select="P1"/></H1> <!-- Other such stuff here, but I would like to put this functionality into another template --> </xsl:for-each> </xsl:for-each> </xsl:template> If you have lots of News elements, you might find the Muenchian Method more efficient than what you're doing at the moment (see http://www.jenitennison.com/xslt/grouping/muenchian.html). --- In XSLT 2.0: <xsl:template name="group-by-date"> <xsl:for-each-group select="/NewsList/List/News" group-by="Date"> <xsl:sort select="substring(Date,7,4)" data-type="number" /> <xsl:sort select="substring(Date,5,2)" data-type="number" /> <xsl:sort select="substring(Date,1,2)" data-type="number" /> Date is: <xsl:value-of select="Date"/><br/> <xsl:for-each select="current-group()"> <H1><xsl:value-of select="P1"/></H1> <!-- Other such stuff here, but I would like to put this functionality into another template --> </xsl:for-each> </xsl:for-each-group> </xsl:template> Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Sort-grouping problem, Ragulf Pickaxe | Thread | Re: [xsl] Sort-grouping problem, Ragulf Pickaxe |
[xsl] sum for a specific attribute, Charly | Date | Re: [xsl] limit fo:block width to c, J.Pietschmann |
Month |