This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: how calculate sum(x*y)
- From: Jarno dot Elovirta at nokia dot com
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 7 Oct 2002 11:25:50 +0300
- Subject: RE: [xsl] how calculate sum(x*y)
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi,
> how calculate sum(x*y) ??
>
> IF i try use sum() it say that need only node-list as argument....
>
> I have xml
> <root>
> <data>
> <x>2</x>
> <y>3</y>
> </data>
> <data>
> <x>5</x>
> <y>6</y>
> </data>
> .....
> <root>
Write a recursive template, that goes through all the data elements, summing the multiplication result to previous result sum, i.e.
template name=sum
param name=node-set
param name=sum
if count($node-set') = 0
then
value-of select=$sum
else
call-template name=sum
with-param name=node-set select=$node-set[not(position() = 1)]
with-param name=sum select=$sum + $node-set[1]/x * $node-set[1]/y
Dimitri probably has some suitable function for the job, see [http://fxsl.sourceforge.net/].
Cheers,
Jarno - Grendel: Human Saviour
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list