xml - How to calculate sum of nodes, with different number format in xsl? -


i have following xml structure:

  <example>     <data>        <numberger>3,40</numberger>     </data>     <data>       <numberger>7,40</numberger>     </data>     <data>        <numberger>17,40</numberger>     </data>   </example> 

i need sum of "numberger" nodes. formatting of number problem. because of use of "," function "sum" produces error. sum(//numberger) not work. can use xslt 2.0 functions.

i think need write recursive template, takes computed value , list of nodes.

something like:

<xsl:template name="addgernumbers">         <xsl:param name="number"/>         <xsl:param name="nodes"/>       <xsl:choose>         <xsl:when test="$nodes">           <xsl:variable name="recursive_result">             ...            <xsl:call-template name="addgernumbers">              ...             </xsl:call-template>             </xsl:variable>           <xsl:value-of select="$number + $recursive_result"/>         </xsl:when>         <xsl:otherwise>           <xsl:value-of select="0"/>         </xsl:otherwise>       </xsl:choose>     </xsl:template> 

at end need single value result.

how xpath sum() previous nodes in xsl for-each loop? not work me, because need single number @ end.

a single xpath 2.0 expression enough:

<xsl:value-of select="sum( $i in //numberger return number(translate( $i, ',','.') ) )"/> 

the for loop translate each value replace commas dots, convert them numbers. returns sequence of numbers can sum normally.


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -