xsl-list
[Top] [All Lists]

RE: Problem With Different Colors for Alternate Rows

2002-11-05 06:46:19
All,

Since I didn't receive any ideas on workarounds for this, I'll assume that what 
I'm trying to do is not technically feasible. I was wondering if anyone can 
give me input about a possible workaround. I was wondering if I can output the 
HTML as an XML file, and then apply a second XSLT stylesheet on the HTML file 
that would loop through each row of the table and make alternativing rows 
different colors. Any ideas on how each of the two stylesheets should look like 
would be appreciated.

Rechell

 -----Original Message-----
From:         Schwartz, Rechell R, ALCAS  
Sent: Thursday, October 31, 2002 10:53 AM
To:   'XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com'
Subject:      Problem With Different Colors for Alternate Rows

All,

I am having difficulty programming a stylesheet that is supposed to return 
the result set as a list of HTML rows in alternating colors.All of the 
examples that I have seen address how to do this if every data row is is 
derived from the same type of XML tag. But in my example, each row may come 
from a completely different section of the XML. Following is a sample XML 
similar to the one that I am using. Also, another constraint is if any row is 
missing, it is inhibited, and the alternating color rule must still be 
preserved. I have tried numerous ways of passing parameters, but have been 
unable to modify the the row count after a match was found ofr each item. Any 
help would be GREATLY appreciated.

Sample XML:

<Food_List>
<Main_Food_List>
<Main_Course>
Chicken
</Main_Course>
</Main_Food_List>
<Side_Dish>
Potatoes
</Side_Dish>
<Desert>
<Fancy_Desert>
Chocolate Truffles
</Fancy_Desert>
</Desert>
</Food_List>

Sample XSLT Stylesheet:
<?xml version="1.0" ?>
<xsl:stylesheet version='1.0' 
xmlns:xsl='http://www.w3.org/1999/XSL/Transform' >
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates select="Food_List/Main_Food_List/Main_Course"/>
<xsl:apply-templates select="Food_List/Side_Dish"/>
<xsl:apply-templates select="Food_List/Desert/Fancy_Desert"/>

<xsl:template match="Main_Course">
<TR><TD>Main Course:</TD><TD xsl:value-of select="."/></TD></TR>
</xsl:template>

<xsl:template match="Side_Dish">
<TR><TD>Side Dish:</TD><TD xsl:value-of select="."/></TD></TR>
</xsl:template>

<xsl:template match="Fancy_Desert">
<TR><TD>Desert:</TD><TD xsl:value-of select="."/></TD></TR>
</xsl:template>

</xsl:stylesheet>



Required HTML Output
<TABLE>
<TR><TD colspan="2">MENU</TD></TR>
<TR><TD class="oddRowStyle">Main Dish:</TD><TD 
class="oddRowStyle">Chicken</TD></TR>
<TR><TD class="evenRowStyle">Side Dish:</TD><TD 
class="oddRowStyle">Potatoes</TD></TR>
<TR><TD class="oddRowStyle">Desert:</TD><TD class="oddRowStyle">Chocolate 
Truffles</TR>
</TABLE>





 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list