xsl-list
[Top] [All Lists]

creating a directory-like index

2003-08-07 06:00:19
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 made it this far:

<xsl:template match="/">
                <xsl:for-each select="artist[substring(name,1,1)]">
                <xsl:sort select="name"/>
                <div class="group">
                        <h1><xsl:value-of select="substring(name,1,1)"/></h1>
                        <xsl:call-template name="artistlist">
                                <xsl:with-param name="letter" 
select="substring(name,1,1)"/>
                        </xsl:call-template>              
                </div>
</xsl:template>

        <xsl:template name="artistlist">
                <xsl:param name="letter"/>
                <xsl:for-each select="artist[starts-with(name,$letter)]">
                <xsl:sort select="name"/>
                        <div class="artist"><xsl:value-of select="name"/></div>
                </xsl:for-each>
        </xsl:template>

But this is creating an extra list for all names for every letter, that would be three times the list for M in my above example.

Any ideas on altering the code?

Thanks for your help,
Alexander


--
_________________________________
Alexander Czernay
IT-Consulting & Media Development

fon +49-40-41096742
fax +49-40-41096743
icq 4773650

alexander(_at_)czernay(_dot_)com
www.czernay.com
_________________________________



XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>