Mr. Horse: CSS-Klasse aus mehreren Werten zusammensetzen

Beitrag lesen

Hallo,

ich baue mir per XSLT ein Menü zusammen. Der aktive Menüpunkt soll dabei die Klasse "current" bekommen. Zusätzlich muss das erste LI-Elemente in der Navigation die Klasse "first" bekommen.
Ich versuche es im Moment so:

<xsl:template match="menuItem" mode="subnav">
 <li>
  <xsl:attribute name="class" value="" />
  <xsl:if test="@href = $current_file_path">
   <xsl:attribute name="class"><xsl:value-of select="concat(@class,' current')" /></xsl:attribute>
  </xsl:if>
  <xsl:if test="position()=1">
   <xsl:attribute name="class"><xsl:value-of select="concat(@class,' first')" /></xsl:attribute>
  </xsl:if>
<!-- ... etc. -->

Dabei wird der Wert des class-Attributs aber leider innerhalb des zweiten if-Blocks überschrieben. Das Ergebnis ist dann im resultierenden HTML "first" statt "current first".
Trifft das zweite if-Statement nicht zu, so erhalte ich class="current".

Das heißt, die Einzelteile des XSLT-Fragments oben scheinen korrekt zu sein - aber es hapert an der Gesamtlogik.
Vielleicht könnt Ihr mir weiterhelfen?

Danke!

So long,
Andreas

--
No, Sir, I don't like it.