RE: [xsl] Comparing and re-assigning variables.

Subject: RE: [xsl] Comparing and re-assigning variables.
From: Jarno.Elovirta@xxxxxxxxx
Date: Mon, 24 Feb 2003 16:09:27 +0200
> At 2003-02-24 15:14 +0200, Jarno.Elovirta@xxxxxxxxx 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


Current Thread