2012-07-09 54 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