Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries >Thread Prev - Advance sorting in XSL >Thread Next - Re: Advance sorting in XSL Re: Advance sorting in XSLTo: NULL Date: 1/6/2005 2:47:00 PM Hi, > I'd like to "group and sort" my data before displaying them and I can't > figure out how to do that. Sorting is not a real problem here, I think. But there are numerous solutions for grouping. a) If you're using XSLT2.0, you can use the built in grouping functions. b) If you're using XLST1.0, you have two options 1)Use extension functions e.g. exslt 2)Use some hand-made grouping algorithm The following stylesheet uses the 'muenchian' grouping algorithm: <?xml version='1.0' encoding="ISO-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" indent="yes"/> <xsl:key name="date" match="DATE" use="."/> <xsl:template match="DATA"> <xsl:apply-templates select="BRAND/DATE[generate-id() = generate-id(key('date',.))]"> <xsl:sort select="substring-after(.,'-')"/> <xsl:sort select="substring-before(.,'-')" /> </xsl:apply-templates> </xsl:template> <xsl:template match="DATE"> <h1><xsl:value-of select="."/></h1> <ul> <xsl:apply-templates select="/DATA/BRAND[DATE=current()]"> <xsl:sort select="@name"/> </xsl:apply-templates> </ul> </xsl:template> <xsl:template match="BRAND"> <li><xsl:value-of select="@name"/></li> </xsl:template> </xsl:stylesheet> regards, -- Joris Gillis (http://www.ticalc.org/cgi-bin/acct-view.cgi?userid=38041) Ceterum censeo XML omnibus esse utendum | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
