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