|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] thanks! now help on alternating rows needed.
thank you thank you. I now have a better understanding of the != operator
and preceding.
now we get to my real problem. I am trying to alternate row colors on a table. here is my xml: <stocks> <ticker>AAA</ticker> <ticker>ABT</ticker> <ticker>BIG</ticker> <ticker>CBS</ticker> <ticker>CBS</ticker> <ticker>IBM</ticker> <ticker>XYZ</ticker> </stocks> this style sheet works at producing the desired results of producing a table each ticker displayed in each row. <table> <xsl:for-each select="stocks/ticker"> <tr> <xsl:attribute name="bgcolor"> <xsl:choose> <xsl:when test="position() mod 2 = 1">white</xsl:when> <xsl:when test="position() mod 2 = 0">yellow</xsl:when> </xsl:choose> </xsl:attribute> <td><xsl:value-of select="." />: Pos:<xsl:value-of select="position()" /></td> </tr> </xsl:for-each> </table> gives me: AAA: Pos:1 ABT: Pos:2 YELLOW BACKGROUND BIG: Pos:3 CBS: Pos:4 YELLOW BACKGROUND CBS: Pos:5 IBM: Pos:6 YELLOW BACKGROUND XYZ: Pos:7 but, I don't want to display the cbs ticker twice, because it is a repeat. So I add the appropriate if. <table> <xsl:for-each select="stocks/ticker"> <xsl:if test="not(. = preceding-sibling::ticker)"> <tr> <xsl:attribute name="bgcolor"> <xsl:choose> <xsl:when test="position() mod 2 = 1">white</xsl:when> <xsl:when test="position() mod 2 = 0">yellow</xsl:when> </xsl:choose> </xsl:attribute> <td><xsl:value-of select="." />: Pos:<xsl:value-of select="position()" /></td> </tr> </xsl:if> </xsl:for-each> </table> this gives me: AAA: Pos:1 ABT: Pos:2 YELLOW BACKGROUND BIG: Pos:3 CBS: Pos:4 YELLOW BACKGROUND IBM: Pos:6 YELLOW BACKGROUND XYZ: Pos:7 I have gotten rid of the duplicate, but now my alternating row colors are wrong. looks like the position() cant be used here. okay, so I have been reading around this similar problem and see that there might be an answer with a recursive template and a parameter, but I haven't gotten too far down that road. Is this the solution? I really need a counter (parameter?) that increments each time the table row is displayed and the row color is based on that. Is there a straighforward way of doing this? I appreciate all your help. You guys are great. will From: Mike Brown <mike@xxxxxxxx> Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: preceding...please help understanding... Date: Sat, 7 Sep 2002 12:13:10 -0600 (MDT)
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








