This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Re[2]: how calculate sum(x*y)


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]