xsl - hintergrundfarbe von wert abhängig
derrenner
- xsl
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
@@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.
LLAP 🖖
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 . <= 3">klasse_1</xsl:when>
<xsl:when test=". >= 4 and . <= 6">klasse_2</xsl:when>
<xsl:when test=". >= 7 and . <= 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