Re: [xsl] Every other row with a different twist

Subject: Re: [xsl] Every other row with a different twist
From: Arni J Rognvaldsson <arni.rognvaldsson@xxxxxxxxxx>
Date: Wed, 17 Jan 2001 10:24:37 -0500
Thank you for your help, David's suggestion is implemented and working.
I changed <tr class="..."> to <tr id="..."> since class was already used and that way I can color trs of different classes. I like the shortcut of appending position() mod 2 to the class/id name, much shorter and clearer than using an xsl:if.


Thanks again, really appreciate it.

Arni

At 11:30 PM 1/16/2001 +0000, David Carlisle wrote:



Your three fields address/name employer/name employer/tel
appear to be in document order (if they are in the document)
does your DTD enforce that?

If so you can get away with


<xsl:template match="person"> <table> <xsl:apply-templates select=" address/name | employer/name | employer/tel"/> </table> </xsl:template>

<xsl:template match="address/name">
          <tr class="rowstyle{position() mod 2}">
             <td>Person's home city:</td>
             <td><xsl:value-of select="address/name"/></td>
          </tr>
</xsl:template>

etc

plus suitable css for .rowstyle0 and .rowstyle1

If you can't be sure of the order, you can do two passes, first
generating the output tree into a node set  and using a node-set
extension function provided by most xsl systems to add the attributes
later.

Alternatively of course you could do the colouring in the client with a
bit of javascript that coloured each row depending on its position
(but its too late at night for me to think javascript now)

David

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



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



Current Thread