Xslt: Righe di colore alternato in una tabella

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 Smile a bocca aperta.

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 Pollice Su

Google's Words: alternate color odd even background-color xslt

powered by IMHO 1.2 with Emoticon Formatter

Print | posted on venerdì 25 febbraio 2005 15:51

Copyright © Gabriele Gaggi

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski