derrenner: xsl - hintergrundfarbe von wert abhängig

hallo zusammen, ich bin neu hier im forum und einsteiger bei xsl.

Ich habe einen Wert im XML dem ich die hintergrundfarbe in der tabellen-zelle abhängig von dem wert anzeigen will. von 1-3 soll es grün sein, von 4-6 gelb, und von 7-9 rot.

bislang lese ich den wert nur aus: <xsl:variable name="wert"> <xsl:value-of select="thema/reifegrad/wert"/> </xsl:variable>

irgendwie bekomme ich das aber nicht hin. Kann mir jemand ein beispiel liefern? danke und gruss

  1. @@derrenner

    Ich habe einen Wert im XML dem ich die hintergrundfarbe in der tabellen-zelle abhängig von dem wert anzeigen will. von 1-3 soll es grün sein, von 4-6 gelb, und von 7-9 rot.

    Auswahl treffen

    LLAP 🖖

    --
    Ist diese Antwort anstößig? Dann könnte sie nützlich sein.
  2. Hallo derrenner,

    Ich habe einen Wert im XML dem ich die hintergrundfarbe in der tabellen-zelle abhängig von dem wert anzeigen will. von 1-3 soll es grün sein, von 4-6 gelb, und von 7-9 rot.

    test.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <test>
      <wert>1</wert>
      <wert>2</wert>
      <wert>3</wert>
      <wert>4</wert>
      <wert>5</wert>
      <wert>6</wert>
      <wert>7</wert>
      <wert>8</wert>
      <wert>9</wert>
    </test>
    

    test.xsl:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="html" version="5" encoding="UTF-8" indent="yes"/>
    
      <xsl:template match="test">
        <html>
          <head>
            <meta charset="UTF-8"/>
            <title>Test</title>
            <style>
              .klasse_1 { color: black; background-color: green; }
              .klasse_2 { color: black; background-color: yellow; }
              .klasse_3 { color: black; background-color: red; }
              .klasse_x { color: black; background-color: white; }
              td { text-align: center; }
            </style>
          </head>
          <body>
            <table>
              <thead>
                <tr>
                  <th>Wert</th>
                </tr>
              </thead>
              <tbody>
                <xsl:apply-templates select="wert"/>
              </tbody>
            </table>
          </body>
        </html>
      </xsl:template>
    
      <xsl:template match="wert">
        <tr>
          <td>
            <xsl:attribute name="class">
              <xsl:choose>
                <xsl:when test=". >= 1 and . &lt;= 3">klasse_1</xsl:when>
                <xsl:when test=". >= 4 and . &lt;= 6">klasse_2</xsl:when>
                <xsl:when test=". >= 7 and . &lt;= 9">klasse_3</xsl:when>
                <xsl:otherwise>klasse_x</xsl:otherwise>
              </xsl:choose>
            </xsl:attribute>
            <xsl:value-of select="."/>
          </td>
        </tr>
      </xsl:template>
    
    </xsl:stylesheet>
    

    Erzeugt in der HTML-Ausgabe u. a.:

    <tr>
      <td class="klasse_1">1</td>
    </tr>
    

    Grüße, Thomas