wuz: Tabellenzeile tr attribute set

Beitrag lesen

Vielen Dank für deine Mühe bei allen Fragen!

Einzig "elegante" Lösung ist wohl mit apply-templates oder call-templates, ich müsste aber soviel variablen übergeben...

<xsl:template match="produkt">
 xsl:choose
  <xsl:when test="position() mod 2 = 0">
    <xsl:element name="tr" use-attribute-sets="grau">
     <xsl:apply-templates />
    </xsl:element>
  </xsl:when>
  xsl:otherwise
    <xsl:element name="tr" use-attribute-sets="gelb">
     <xsl:apply-templates />
    </xsl:element>
  </xsl:otherwise>
 </xsl:choose>
</xsl:template>

Hallo,

Wie kann ich folgenden Code vereinfachen, damit ich den tabellenzelleninhalt nicht immer anschreiben muss?

Du muss den Tabellenzelleninhalt anschreiben? ;-)

Aber um auf deine Frage zu antworten: entweder gar nicht, weil die andere Lösungen auch nicht weniger Code produzieren würden, oder in Abhängigkeit davon was du in deinem xsl:attribute-sets hast, deren Inhalt direkt in <tr> unterbringen:

<tr>
    xsl:choose
       <xsl:when test="position() mod 2 = 0">
          <xsl:attribute name="...">...</xsl:attribute>
           ...
       ...
    </xsl:choose>
         <td>
          <xsl:value-of select="position()"/>
         </td>
         <td>
          <xsl:value-of select="$current_teilnehmer_name"/>
         </td>
         <td>
          <xsl:value-of select="$current_teilnehmer_fname"/>
         </td>
</tr>

Oder so z.B.
<tr>
<xsl:attribute name="class">
xsl:choose
   <xsl:when test="position() mod 2 = 0">dark</xsl:when>
   xsl:otherwiselight</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
...
</tr>

Grüße
Thomas

xsl:choose
       <xsl:when test="position() mod 2 = 0">
        <xsl:element name="tr" use-attribute-sets="gerade">
         <td>
          <xsl:value-of select="position()"/>
         </td>
         <td>
          <xsl:value-of select="$current_teilnehmer_name"/>
         </td>
         <td>
          <xsl:value-of select="$current_teilnehmer_fname"/>
         </td>

</xsl:element>
       </xsl:when>
       xsl:otherwise
        <xsl:element name="tr" use-attribute-sets="ungerade">
         <td>
          <xsl:value-of select="position()"/>
         </td>
         <td>
          <xsl:value-of select="$current_teilnehmer_name"/>
         </td>
         <td>
          <xsl:value-of select="$current_teilnehmer_fname"/>
         </td>

</xsl:element>