MudGuard: Zugriff auf vorheriges Element bei Sortierung

Beitrag lesen

Hi,

<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>

Hab das jetzt noch leicht modifiziert - ich will eigentlich keine zusätzlichen Elemente (so wie hier im Beispiel die h1 + a), sondern direkt in den sowieso erzeugten Elementen (hier: p) die id.
Aber das ist jetzt kein Problem - innerhalb des for-each kann ich mit test="position()=1" arbeiten:

<xsl:template name="groupelembyname">
   <xsl:param name="gruppe" />
   <xsl:for-each select="$gruppe">
      <xsl:sort select="@name" />
      <p>
         <xsl:if test="position() = 1">
            <xsl:attribute name="id">label<xsl:value-of select="translate(substring(@name, 1, 1), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/></xsl:attribute>
         </xsl:if>
         <xsl:value-of select="." />
      </p>
   </xsl:for-each>
</xsl:template>

Nochmals vielen Dank für Deine Mühen!

Nicht nur mein akutes Problem ist gelöst, ich meine, jetzt grundsätzlich key verstanden zu haben.

cu,
Andreas

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