[xsl] Re: accumulate a variable...is it possible?

Subject: [xsl] Re: accumulate a variable...is it possible?
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Wed, 9 Oct 2002 12:44:06 -0700 (PDT)
--- G. Ken Holman wrote:
 
> At 2002-10-09 12:49 -0500, Carter, Will wrote:
> >I am trying to accumulate a variable 
> 
> You don't say why so it is difficult to advise how to fix the problem
> you 
> are trying to solve using a variable.
> 
> To mimic the results you want, an example is below.
> 
> I hope this helps.
> 
> ............ Ken
> 
> T:\ftemp>type carter.xml
> <numbers>
>    <num>3</num>
>    <num>7</num>
>    <num>11</num>
>    <num>6</num>
>    <num>3</num>
> </numbers>
> 
> T:\ftemp>type carter.xsl
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>                  version="1.0">
> 
> <xsl:output method="text"/>
> 
> <xsl:template match="num">
>    <xsl:text/>num=<xsl:value-of select="."/>
>    <xsl:text> accumulated=</xsl:text>
>    <xsl:value-of select="sum(. | preceding-sibling::num)"/>
> </xsl:template>
> 
> </xsl:stylesheet>
> 
> T:\ftemp>xt carter.xml carter.xsl
> 
>    num=3 accumulated=3
>    num=7 accumulated=10
>    num=11 accumulated=21
>    num=6 accumulated=27
>    num=3 accumulated=30
> 
> T:\ftemp>
> 
> 
> --
> G. Ken Holman              

While this seems an easy way to scan the computation, its complexity is
O(N^2).

A more efficient linear solution is available either by using the
scanl/scanl1 templates of FXSL or by writing from scratch a recursive
named template.



=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL

__________________________________________________
Do you Yahoo!?
Faith Hill - Exclusive Performances, Videos & More
http://faith.yahoo.com

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


Current Thread