Questa è banale ma ogni volta devo andare a riguardarmela. Inoltre avevo già scritto qualche cosa di analogo per reporting services, quindi ci stava bene anche per Xslt .
Torniamo al problema: come alternare il colore delle righe di una tabella in Xslt?
Prendiamo come esempio il solito xml:
<?xml version="1.0" encoding="UTF-8"?>
<rubrica>
<persona>
<Nome>Mario</Nome>
<Cognome>Rossi</Cognome>
<Telefono>1213243252345</Telefono>
</persona>
<persona>
<Nome>Antonio</Nome>
<Cognome>Bianchi</Cognome>
<Telefono>1213243252345</Telefono>
</persona>
</rubrica>
Ed ecco l'esempio in Xslt sfruttando il tag xsl:attribute:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="//rubrica">
<table border="1">
<xsl:for-each select="persona">
<tr>
<xsl:attribute name="style">
<xsl:choose>
<xsl:when test="position() mod 2 = 0">
background-color:silver;
</xsl:when>
<xsl:otherwise>
background-color:#EFEFEF;
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<td><xsl:value-of select="Nome" /></td>
<td><xsl:value-of select="Cognome" /></td>
<td><xsl:value-of select="Telefono" /></td>
</tr>
</xsl:for-each>
</table>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
That's all folks
Google's Words: alternate color odd even background-color xslt
powered by IMHO 1.2 with Emoticon Formatter