xsl-list
[Top] [All Lists]

RE: Table alternate rows colors within xsl:sort

2003-11-20 02:41:24


I would want to display a datagrid which lines colors
varies regarding the position (one line white, one
line gray, one line white, ...) AFTER an xsl:sort.

The problem is that the "<xsl:if test="position() mod
2 = 0"> won't work after a <xsl:sort> because the
position() function returns the position in the
original xml, not the in sorted nodes.

I can't use a variable because xslt do not allow to
increment it within my xsl:for-each

Do someone know a solution to this ?

A simple way is to do the sort in a variable first, then for-each over
the variable to produce your table rows.

<xsl:variable name="sortedRows-rtf">
  <xsl:for-each select="links/link">
    sort, xsl:copy etc...
  </xsl:for-each>
</xsl:variable>
<xsl:variable name="sortedRows" select="xxx:node-set($sortedRows-rtf)"/>

Then...

<table>
  <xsl:for-each select="$sortedRows">
    <xsl:for-each select="link">
       ....


Get the idea?

Whenver you have some multi-stage processing to do, just split it up
into variables, each one working on the previous one.

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



<Prev in Thread] Current Thread [Next in Thread>