Subject: RE: [xsl] creating a directory-like index From: "Andrew Welch" <AWelch@xxxxxxxxxxxxxxx> Date: Thu, 7 Aug 2003 15:47:20 +0100 |
> I wnat to create a directory like index from a list of names. I want to > have section heading for each existing first-letter, followed by all > names starting with that first letter, omitting non-existant letters. > > Like this: > > A > Alexander > Andrea > > M > Martin > Max > Moritz I can see what you were trying to do... what you need to do is use the Muenchian method of grouping - you find the first occurance of each group, then apply-templates to its following-siblings (within the group). This should be what you need: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:key name="group-by-initial" match="name" use="substring(.,1,1)"/> <xsl:template match="root"> <div> <xsl:for-each select="name[generate-id(.) = generate-id(key('group-by-initial',substring(.,1,1))[1])]"> <div style="margin-top:1em;text-transform:uppercase"><xsl:value-of select="substring(.,1,1)"/></div> <xsl:apply-templates select=".|following-sibling::name[starts-with(.,substring(current(),1,1) )]"> <xsl:sort select="."/> </xsl:apply-templates> </xsl:for-each> </div> </xsl:template> <xsl:template match="name"> <div><xsl:apply-templates/></div> </xsl:template> </xsl:stylesheet> cheers andrew XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] creating a directory-like ind, Alexander Czernay | Thread | RE: [xsl] creating a directory-like, FEDOU |
Re: [xsl] two column table with alt, nicholse | Date | RE: [xsl] Need Help with XSL loop b, Richard Lander |
Month |