MudGuard: Zugriff auf vorheriges Element bei Sortierung

Beitrag lesen

Hi,

ich habe jetzt eine Lösung (wenn es dir so reicht?)

Muchachos Garcia oder so...

Mal sehen, ob ich die neuen Teile verstanden habe...

<xsl:template match="elem" mode="byname">
   <xsl:if test="generate-id(.) = generate-id(key('firstletter', translate(substring(@name, 1, 1), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'))[1])">
       <xsl:call-template name="groupelembyname">
           <xsl:with-param name="gruppe" select="key('firstletter', translate(substring(@name, 1, 1), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'))" />
      </xsl:call-template>
   </xsl:if>
</xsl:template>

Mit dem generate-id-Zeug wird sichergestellt, daß pro Anfangszeichen im Name-Attribut genau ein Aufruf von groupelembyname geschieht.
Diesem Aufruf werden die Elemente der Gruppe als Parameter mitgegeben.

<xsl:template name="groupelembyname">
   <xsl:param name="gruppe" />
   <h1><a id="label{substring($gruppe[1], 1, 1)}">label <xsl:value-of select="substring($gruppe[1], 1, 1)" /></a></h1>
   <xsl:for-each select="$gruppe">
       <xsl:sort select="@name" />
       <p>
           <xsl:value-of select="." />
       </p>
  </xsl:for-each>
</xsl:template>

Hier wird erstmal das Label erzeugt, anschließend die Elemente der Gruppe ausgegeben.

Klingt eigentlich einfach - aber da wär ich nie drauf gekommen.

Nochmals herzlichen Dank - wenn Du mal hier vorbeikommst, geb ich Dir nen Green Spot aus - jetzt trink ich erst mal einen auf Dein Wohl!

cu,
Andreas

--
MudGuard? Siehe http://www.Mud-Guard.de/