Subject: Re: [xsl] Marking every second row From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Mon, 6 Jan 2003 14:03:11 +0000 |
Hi Sorin, > I got an very simple XSL-File wich produces following output from a very > simple XML-File > > <table> > <tr><td>aaa</td></tr> > <tr><td>bbb</td></tr> <-- X > <tr><td>ccc</td></tr> > <tr><td>ddd</td></tr> <-- X > <tr><td>eee</td></tr> > <tr><td>fff</td> </tr> <-- X > </table> > > Now I want the background of the lines which are marked with an X in > another color. > > So how do I select every second row of my output? Using this output as the input for a transformation, you can do something like: <xsl:template match="table"> <table> <xsl:for-each select="tr"> <tr> <xsl:if test="position() mod 2 = 0"> <xsl:attribute name="bgcolor">blue</xsl:attribute> </xsl:if> <xsl:copy-of select="*" /> </tr> </xsl:for-each> </table> </xsl:template> This loops over the tr elements, creates a copy and adds a bgcolor attribute if the position of the tr element is even (which is tested with position() mod 2 = 0). You could probably do something similar when you're actually creating this table in your stylesheet, but without seeing the input to that transformation I can't be certain. Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Marking every second row, Peter Finch | Thread | Re: [xsl] Marking every second row, Sorin Marti |
Re: [xsl] passing xsl:value-of to H, Oleg Tkachenko | Date | Re: [xsl] passing xsl:value-of to H, Peter Finch |
Month |