Thomas J.S.: Zugriff auf vorheriges Element bei Sortierung

Beitrag lesen

Hallo Andreas,

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="firstletter" match="elem" use="translate(substring(@name, 1, 1), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" />

...

<xsl:template match="allelems">
    <!-- diverser anderer Kram, der mit dem Problem nichts zu tun hat... -->
    <xsl:call-template name="abclist" />
    <!-- diverser anderer Kram, der mit dem Problem nichts zu tun hat... -->
 <xsl:apply-templates select="elem">
  <xsl:sort select="@name" />
 </xsl:apply-templates>
</xsl:template>

<xsl:template name="abclist">
    <xsl:for-each select="elem[generate-id() = generate-id(key('firstletter', translate(substring(@name, 1, 1), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'))[1])]">
  <xsl:sort select="@name"/>
        <a href="#label{@name}"><xsl:value-of select="substring(@name, 1, 1)"/></a>&#160;
 </xsl:for-each>
</xsl:template>

<xsl:template match="elem">
 <p><a name="label{@name}"></a><xsl:value-of select="." /></p>
</xsl:template>
</xsl:stylesheet>

----------

Grüße
Thomas