xsl-list
[Top] [All Lists]

RE: Comparing and re-assigning variables.

2003-02-24 07:09:27
At 2003-02-24 15:14 +0200, Jarno(_dot_)Elovirta(_at_)nokia(_dot_)com wrote:
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"/>

Note, Jarno, the sorting that the original poster is doing.

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">

This will visit the source node tree in document order, and 
not in sorted 
order.

Unless I'm missing something (easily possible early on a 
Monday morning), 
I'm not convinced a recursive template addressing nodes in 
document order 
is going to quite address the poster's needs to know the 
"previous" node in 
sorted order.

Ah, yes on both cases, I totally missed the sorting bit - never underestimate 
the power of Mondays. So it calls for a two-pass solution, or some sort of 
"sort and generate space separated id list and process that recursively" 
solution. Sorry Bill for the misguidance, think I'll go reset my brain at the 
dojo.

Cheers,

Jarno - Melotron: Folge mir ins Licht

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