Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从XSLT变量中创建的节点求和()值_Xslt_Xpath_Sum_Node Set - Fatal编程技术网

如何从XSLT变量中创建的节点求和()值

如何从XSLT变量中创建的节点求和()值,xslt,xpath,sum,node-set,Xslt,Xpath,Sum,Node Set,我对变量中的值求和有困难 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>

我对变量中的值求和有困难

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>

我以为这会给我结果,但我得到的只是“楠”


您得到NAN是因为,在数字中使用翻译数字将其更改为。应该有用

 <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>

您得到NAN是因为,在数字中使用翻译数字将其更改为。应该有用

 <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>


XSLT版本1.0或2.0?这是因为数字中没有逗号。(XSLT无法识别欧洲格式)。请澄清:in=“555777,00”是否意味着值为555777.00?正确,源代码使用“,”而不是“.”表示小数。TreeMonkey在下面回答正确-使用translate修复了问题。干杯,XSLT版本1.0或2.0?那是因为数字中没有逗号。(XSLT无法识别欧洲格式)。请澄清:in=“555777,00”是否意味着值为555777.00?正确,源代码使用“,”而不是“.”表示小数。TreeMonkey在下面回答正确-使用translate修复了问题。干杯,+1。比我快。我建立了一个这个原理的工作演示(很好,类似)。+1。比我快。我建立了一个这个原理的工作演示(很好,类似)。