Mega Code Archive

 
Categories / XML Tutorial / XSLT StyleSheet
 

Set table cell style with choose statement

File: Data.xml <?xml version="1.0"?> <list xml:lang="en">   <title>title 1</title>   <listelement>element 1</listelement>   <listelement>element 2</listelement>   <listelement>element 3</listelement>   <listelement xml:lang="sw">element 4</listelement>   <listelement xml:lang="en-gb">element 5</listelement>   <listelement xml:lang="zu">element 6</listelement>   <listelement xml:lang="jz">element 7</listelement> </list> File: Transform.xslt <?xml version="1.0"?> <xsl:stylesheet version="1.0"    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">   <xsl:output method="html"/>   <xsl:template match="/">     <html>       <head>         <title>           <xsl:value-of select="list/title"/>         </title>       </head>       <body style="font-family: sans-serif; color: white;">         <h1 style="color: black;">           <xsl:value-of select="list/title"/>         </h1>         <table border="1" cellpadding="5"            style="font-weight: bold;">           <xsl:for-each select="list/listelement">             <tr>               <td>                 <xsl:attribute name="style">                   <xsl:choose>                     <xsl:when test="position() mod 4 = 0">                       <xsl:text>background: yellow; color: black;</xsl:text>                     </xsl:when>                     <xsl:when test="position() mod 4 = 1">                       <xsl:text>background: blue;</xsl:text>                     </xsl:when>                     <xsl:when test="position() mod 4 = 2">                       <xsl:text>background: white; color: black;</xsl:text>                     </xsl:when>                     <xsl:otherwise>                       <xsl:text>background: black;</xsl:text>                     </xsl:otherwise>                   </xsl:choose>                 </xsl:attribute>                 <xsl:value-of select="."/>               </td>             </tr>           </xsl:for-each>         </table>       </body>     </html>   </xsl:template> </xsl:stylesheet> Output: <html>    <head>       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">       <title>title 1</title>    </head>    <body style="font-family: sans-serif; color: white;">       <h1 style="color: black;">title 1</h1>       <table border="1" cellpadding="5" style="font-weight: bold;">          <tr>             <td style="background: blue;">element 1</td>          </tr>          <tr>             <td style="background: white; color: black;">element 2</td>          </tr>          <tr>             <td style="background: black;">element 3</td>          </tr>          <tr>             <td style="background: yellow; color: black;">element 4</td>          </tr>          <tr>             <td style="background: blue;">element 5</td>          </tr>          <tr>             <td style="background: white; color: black;">element 6</td>          </tr>          <tr>             <td style="background: black;">element 7</td>          </tr>       </table>    </body> </html>