[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Sorting seems not to work completely
Subject: Re: [xsl] Sorting seems not to work completely From: Andrew Welch <andrew.j.welch@xxxxxxxxx> Date: Wed, 27 Jul 2011 20:24:25 +0100 |
On 27 July 2011 19:59, Mark <mark@xxxxxxxxxxxx> wrote: > Hello Michael, > I'm not sure I understood the '+' in <xsl:for-each > select+"current-group()"> typo... :) > I tried the below template. [1] gives me the <Stamp> elements grouped under > <Date> but not sorted by value. [2] gives me the <Stamp> elements sorted by > value but not grouped under <Date>. Clearly I am missing something as I am > quite week in XPath. Where am I going wrong. The code below does what you need. Directly within the for-each-each group the context is the sequence of <Stamp> elements all with the same year/month/day. The sort there sorts on that value. Then the for-each inside there processes that seqeunce (that all have the same year/month/day one at a time, sorted by the value. I've used a different wrapper element for each group to help show what is going on. <xsl:template match="List"> <xsl:element name="List"> <xsl:for-each-group select="Item/Stamp" group-by="Date/concat(@year, @month, @day)"> <xsl:sort select="current-grouping-key()" data-type="number"/> <xsl:element name="Group{position()}"> <xsl:for-each select="current-group()"> <xsl:sort select="@value" order="descending" data-type="number"></xsl:sort> <xsl:copy-of select="." copy-namespaces="no"/> </xsl:for-each> </xsl:element> </xsl:for-each-group> </xsl:element> </xsl:template> -- Andrew Welch http://andrewjwelch.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Sorting seems not to work, Mark | Thread | Re: [xsl] Sorting seems not to work, Mark |
Re: [xsl] Sorting seems not to work, Murray McDonald | Date | Re: [xsl] Sorting seems not to work, Michael Kay |
Month |