xsl-list
[Top] [All Lists]

RE: accumulate a variable...is it possible?

2002-10-09 13:45:09
You should get an error message telling you that the variable $acc has
been declared twice. Which processor are you using (I know xt has this
bug, but I'm not aware of any others)?

As any XSLT textbook will tell you, XSLT is a functional programming
language and does not have updateable variables.

Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com 

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Carter, Will
Sent: 09 October 2002 18:49
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] accumulate a variable...is it possible?


Hi,

I am trying to accumulate a variable but not succesful... 
here is my xml:
--------------------------------
<numbers>
  <num>3</num>
  <num>7</num>
  <num>11</num>
  <num>6</num>
  <num>3</num>
</numbers>
--------------------------------

here is the output I want:
--------------------------------
num=3 accumulated=3 
num=7 accumulated=10 
num=11 accumulated=21 
num=6 accumulated=27 
num=3 accumulated=30
--------------------------------

here is my stylesheet:
--------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0"> <xsl:template match="/"> <xsl:variable 
name="acc" select="0"/> <table border="1">
  <xsl:for-each select="numbers/num">
  <xsl:variable name="acc" select="$acc + ."/>
    <tr>
      <td>num=<xsl:value-of select="."/></td>
      <td>accumulated=<xsl:value-of select="$acc"/></td>
    </tr>
   </xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
--------------------------------

here is what I get:
--------------------------------
num=3 accumulated=3 
num=7 accumulated=7 
num=11 accumulated=11 
num=6 accumulated=6 
num=3 accumulated=3
--------------------------------

this post is speaking the same problem, but I want to see the 
3, 10, 21, 27, 30 along the way... 
http://p2p.wrox.com/archive/xslt/2002-> 04/57.asp

thanks,
will



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



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