[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Sorting seems not to work completely
Thanks Murray et al,
I did have to make one small change to the placement of the <Item> element, but I now have what I want. This has to be the most responsive and helpful list on the Internet! Mark The final template: <xsl:template match="List"> <xsl:element name="List"> <xsl:for-each-group select="Item/Stamp" group-by="concat(Date/@year, '', Date/@month, ' ', Date/@day)"> <xsl:sort select="Date/@year" data-type="number"></xsl:sort> <xsl:sort select="Date/@month" data-type="number"></xsl:sort> <xsl:sort select="Date/@day" data-type="number"></xsl:sort> <xsl:element name="Item"> <!-- output a Date element for each date "group" **within the "Item>--> <xsl:copy-of select="current()/Date" copy-namespaces="no"></xsl:copy-of> <xsl:for-each select="current-group()"> <!-- this sorts the elements within each group --> <xsl:sort select="@value" order="descending" data-type="number"></xsl:sort> <!-- this outputs each individual element within the group in sorted order --> <xsl:copy-of select="." copy-namespaces="no"></xsl:copy-of> </xsl:for-each> </xsl:element> </xsl:for-each-group> </xsl:element> </xsl:template> -----Original Message----- From: Murray McDonald Sent: Wednesday, July 27, 2011 12:19 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: Sorting seems not to work completely Hi Mark, Try this: <xsl:template match="List"> <xsl:element name="List"> <xsl:for-each-group select="Item/Stamp" group-by="concat(Date/@year, ' ', Date/@month, ' ', Date/@day)"> <xsl:sort select="Date/@year" data-type="number"></xsl:sort> <xsl:sort select="Date/@month" data-type="number"></xsl:sort> <xsl:sort select="Date/@day" data-type="number"></xsl:sort> <!-- output a Date element for each date "group" --> <xsl:copy-of select="current()/Date" copy-namespaces="no"></xsl:copy-of> <xsl:for-each select="current-group()"> <!-- this sorts the elements within each group --> <xsl:sort select="@value" order="descending" data-type="number"></xsl:sort> <!-- this outputs each individual element within the group in sorted order --> <xsl:element name="Item"> <xsl:copy-of select="."/> </xsl:element> </xsl:for-each> </xsl:for-each-group> </xsl:element> </xsl:template>
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|