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