Сумма на exsl: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 ответ

Ваши расчеты неверны. 9636 + 34640 + 29561 = 73837

Другие вопросы по тегам