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