Subject: Re: Problem with filtrate sum
From: j23 <duniaj@xxxxxxxxxxxx>
Date: Thu, 1 Oct 2009 19:39:37 +0200
|
Thanks that's what I mean
2009/10/1 Martin Honnen <Martin.Honnen@xxxxxx>:
> j23 wrote:
>
>> <xsl:template match="root-element">
>>
>> <table>
>> <xsl:variable name="x">
>> <xsl:for-each select="Row[position()>=1]">
>> <d><xsl:value-of
>> select="translate(Number,'.','')"/></d>
>> </xsl:for-each>
>> </xsl:variable>
>>
>> <td><xsl:value-of select="sum(exslt:node-set($x)/d)
>> "/></td>
>>
>> </table>
>> </xsl:template>
>>
>> </xsl:stylesheet>
>>
>> I would like to sum number (without character '.'). It works.
>> Now I try sum for one name, I make like this but it doesn't work
>> <xsl:value-of select="sum([Name = 'Joe']exslt:node-set($x)/d) "/>
>> How can I filtrate sum with using function translate, or key?
>
> If it is just for one name then you can simply change the code that sets up
> the variable e.g.
>
> <xsl:variable name="x">
> <xsl:for-each
select="Row[position()>=1][Name
> = 'Joe']">
> <d><xsl:value-of
> select="translate(Number,'.','')"/></d>
> </xsl:for-each>
> </xsl:variable>
>
> then you would simply compute the sum as before
> <xsl:value-of select="sum(exslt:node-set($x)/d)"/>
>
> If you want to compute the sum for several names then you need to store the
> name when you build your variable e.g.
>
> <xsl:variable name="x">
> <xsl:for-each select="Row[position()>=1]">
> <d>
> <name><xsl:value-of select="Name"/></name>
> <value><xsl:value-of select="translate(Number,'.','')"/></value>
> </d>
> </xsl:for-each>
> </xsl:variable>
>
> Now you can compute e.g.
>
> <xsl:value-of select="sum(exslt:node-set($x)/d[name = 'Joe']/value)"/>
>
> --
>
> Martin Honnen
> http://msmvps.com/blogs/martin_honnen/
|