#1
  1. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Mar 2000
    Posts
    44
    Rep Power
    15
    I currently have an XSL file set up with the code below:


    <xsl:for-each select="/DESCRIPTIONS/">
    <xsl:choose>
    <xsl:when match=".[DESCRIPTION='Description']">
    <tr bgcolor="#cccccc">
    <td align="left">
    <xsl:value-of select="DESCRIPTION"/>
    </td>
    </tr>
    </xsl:when>

    <xsl:when match=".[DESCRIPTION='Description3']">
    <tr bgcolor="#cccccc">
    <td align="left">
    <xsl:value-of select="DESCRIPTION"/>
    </td>
    </tr>
    </xsl:when>

    <xsl therwise>
    <tr>
    <td align="left">
    <xsl:value-of select="DESCRIPTION"/>
    </td>
    </tr>
    </xsl therwise>
    </xsl:choose>
    </xsl:for-each>


    The current code works fine, and it's sole purpose is to change the background color of every other row.

    My problem/question comes from the fact that my current solution is hardly a dynamic way to work with the data. As soon as there's a Description5 or Description7 etc... the row color changes will either have to be manually entered or the color alternating will just end up stopping.

    Does anyone know of a way to make the rows continue to alternate colors? Is there a way to use while loops in XML/XSL that I am missing? I'm hoping this is just an easy answer I'm overlooking.

    (Take it easy on me... I'm brand new at this)

    Comments on this post

    • Gran Roguismo agrees
  2. #2
  3. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Mar 2000
    Posts
    44
    Rep Power
    15
    Solution: (Maybe it can help someone else out there looking for a similar solution)


    Step 1)
    Create a CSS file to store your colors.

    color0="#FFFFFF"
    color1="#EEEEEE"

    Step 2)
    Call to that CSS file from your XSL file.

    <HTML>
    <head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="color.css"/>
    </head>

    Step 3)
    Where you call the table rows, use:


    <tr>
    <xsl:attribute name="class">
    color
    <xsl:eval>childNumber(this)% 2</xsl:eval>
    </xsl:attribute>
    <xsl:apply-templates/>
    <td align="left"><xsl:value-of select="description"/></td>
    </tr>

    It worked for me... hope it helps you as well.

    Comments on this post

    • Gran Roguismo agrees

IMN logo majestic logo threadwatch logo seochat tools logo