对exsl求和:node-set返回一个不正确的值

时间:2012-10-19 16:41:58

标签: xslt sum node-set

我已经写了一些xsl来创建一些xml代码然后求和。这是代码:

              <xsl:variable name ="tmpTotal">
                <root>
                  <xsl:for-each select="key('idxid',$id)//parent::*/transaction/transaction-date[substring(@iso-date,1,4) = $newyear  ]">
                      <xsl:if test="../transaction-type[@code='E']">
                        <item>
                          <xsl:value-of select="number(../value)"/>
                        </item>
                      </xsl:if>

                    </xsl:for-each>
               </root>
            </xsl:variable>

              <xsl:variable name="value" select="sum(exsl:node-set($tmpTotal)/root/item)" />
              <h3>
                All: <xsl:value-of select="exsl:node-set($tmpTotal)/*"/> <br/>
                Year: <xsl:value-of select="$newyear"/> <br/>
                Value:<xsl:value-of select="$value"/> <br/>

              </h3>

结果如下: 全部:96363464029561  年份:2005年  值:73837

数字列表(来自All:输出)如下: 9636 3460 29561 总数应该是42657.但是,总和(exsl:node-set($ tmpTotal)/ root / item)的总数是73837.如果xml中的数字是正确的,为什么我的总数不正确? 在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你的计算错了。 9636 + 34640 + 29561 = 73837