2012-07-09 56 views
2

我在变量中求和值时遇到了问题。如何从XSLT变量中创建的节点求和()值

XSLT来源

<xsl:variable name="amountIn" xml:space="preserve"> 
<values> 
<xsl:for-each select="ext:node-set($finData)//child::balance/@in"> 
<value><xsl:value-of select="."/></value> 
</xsl:for-each> 
</values> 
</xsl:variable> 

XML源:

<source> 
<balance dpt="-1" diff="0,00" out="555777,00" in="555777,00" acnt="2120"/> 
<balance dpt="-1" diff="0,00" out="777778,00" in="777778,00" acnt="2240"/> 
<balance dpt="-1" diff="0,00" out="878787,00" in="878787,00" acnt="2380"/> 
<balance dpt="-1" diff="0,00" out="87878787,00" in="87878787,00" acnt="2400"/> 
</source> 

我希望这个给我的结果,但我得到的是 “南”

<xsl:value-of select="sum(ext:node-set($amountIn)/values/value)"/> 
+0

XSLT version 1.0 or 2.0? – 2012-07-09 13:12:01

+0

这是因为数字中没有逗号。 (欧洲格式不被XSLT识别)。 – 2012-07-09 13:21:25

+0

请澄清:Is in =“555777,00”意思是价值555777.00? – 2012-07-09 13:26:13

回答

4

你得到NAN因为,在数字上使用翻译号码将其改为a。应该管用!

<xsl:variable name="amountIn" xml:space="preserve"> 
<values> 
<xsl:for-each select="ext:node-set($finData)//child::balance/@in"> 
<value><xsl:value-of select="translate(.,',','.')"/></value> 
</xsl:for-each> 
</values> 
</xsl:variable> 
+0

+1。打败我吧。我建立了这个原理的工作演示(很好,类似)[这里](http://www.xmlplayground.com/IJ2SD1)。 – Utkanos 2012-07-09 13:46:04

+0

谢谢你!我完全错过了那一个。 干杯,莫滕 – miracules 2012-07-10 05:59:01