Subject: RE: Re[2]: [xsl] how calculate sum(x*y) From: Jarno.Elovirta@xxxxxxxxx Date: Mon, 7 Oct 2002 12:42:05 +0300 |
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> > > JEnc> Write a recursive template, that goes through all the > data elements, summing the multiplication result to previous > result sum, i.e. > > JEnc> template name=sum > JEnc> param name=node-set > JEnc> param name=sum > > JEnc> if count($node-set') = 0 > JEnc> then > JEnc> value-of select=$sum > JEnc> else > JEnc> call-template name=sum > JEnc> with-param name=node-set > select=$node-set[not(position() = 1)] > JEnc> with-param name=sum select=$sum + $node-set[1]/x > * $node-set[1]/y > > JEnc> Dimitri probably has some suitable function for the > job, see [http://fxsl.sourceforge.net/]. > > > I try now use function "nodeset" from xalan namespace to > build new nodeset > with result of calculation x*y and then apply function sum for this > tree. > can you compare this two variants, what variant more likely to use ? Well, exslt:node-set is pretty portable these days (latest Xalan implements it), but I don't see any particular reason why you couldn't just use the XSLT 1.0 way of doing it. If you need the intermediate multiplication result set somewhere else, then the RTF->node-set solution will probably be better, but if you just need the multiplication sum, go with the recursive template. Cheers, Jarno - Cenobita: Destino Final (Global mix) XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] how calculate sum(x*y), Andrew Welch | Thread | [xsl] Re: how calculate sum(x*y), Dimitre Novatchev |
Re[2]: [xsl] how calculate sum(x*y), Andrey Solonchuk | Date | [xsl] Re: how calculate sum(x*y), Dimitre Novatchev |
Month |