Hi,
> Ok, here's a part of a xsl file i wrote to create a
> transactions report:
>
> <!-- Iterate over all txns. -->
> <table border="0">
> <xsl:for-each select="report-root/txns">
> <xsl:sort select="cpmBI"/>
> <xsl:sort select="date"/>
> <xsl:variable name="currCpmBI" select="cpmMemBI"/>
>
> <!-- CODE TO BE INSERTED HERE - READ ON -->
>
> </xsl:for-each>
> </table>
>
> What i want is to compare the value of currCpmBI with the
> previous value in the iteration (which i have not defined in
> the above code). If they differ I want to add a some extra html.
> My question now boils down to:
> - How can i remember the previous value of cpmMemBI and how
> would I store it so i can compare it with the current value
> in the iteration?
Using xsl:for-each you don't; if you process the txns using a recursive template construct, you can always pass the previous currCpmBI, but not using xsl:for-each - it's *not* a for-loop like in, say, Java. Instead just do
<xsl:if test="cpmMemBI = previous-sibling::txns[1]/cpmMemBI">
> - If the current value has changed, how can i re-initialise
> the previous value with the current value?
The current value cannot change, you can't change the source tree, nor can you change the value bound to a variable.
Cheers,
Jarno - VNV Nation: Genesis
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|