RE: [xsl] sum within template

Subject: RE: [xsl] sum within template
From: David Neary <David@xxxxxxxxx>
Date: Mon, 19 May 2003 17:17:06 +0200

De : shadab [mailto:mohammad.shadab@xxxxxxxxxxx]
> I have a template,
> 
> <xsl:template match="purchaseOrder/items/quantity">
> <xsl:element name="quant"><xsl:value-of 
> select="current()"/></xsl:element>
> </xsl:template>
> 
> Now the occurence of items is unbounded.I would like to get 
> the sum of all
> the 'quantity' fields within items.
> 
> By changing value-of select=sum(current()) it throws an 
> error.Any ideas how
> i could get the sum of all 'quantity' without removing template?

Really, you should be matching a little bit higher up. If you change your
template to 

<xsl:template match="purchaseOrder">
  <quant>
    <xsl:value-of select="sum(items/quantity)"/>
  </quant>
</xsl:template>

this will do what you want.

You can then, if needs be, do an apply-templates of item inside the template
for purchaseOrder.

Hope this helps,
Dave.

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


Current Thread