Сумма xslt объединяет, а не добавляет

поэтому я пытаюсь написать xslt 1.0 и пытаюсь суммировать некоторые значения, но функция sum () объединяет числа (или строки) вместо суммирования. Я вставлю свой xslt здесь.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:exsl="http://exslt.org/common">

<xsl:template match="/">
<table id="carttable" align="center">
<xsl:for-each select="cart/item">
<tr>
<td id="itemnum"><xsl:value-of select="itemnumber" /></td>
<td id="itemprice"><xsl:value-of select="itemprice" /></td>
<td><xsl:value-of select="quantity" /></td>
<td id="itemadd"><input type="button" id="removeBtn" value="Remove One From Cart">
<xsl:attribute name="onclick">
<xsl:text>removeFromCart(</xsl:text>
<xsl:value-of select="itemnumber" />
<xsl:text>)</xsl:text>
</xsl:attribute>
</input></td>
</tr>
</xsl:for-each>
<xsl:variable name="itemTotals">
<xsl:for-each select="cart/item">
<total>
<xsl:value-of select="itemprice * quantity" />
</total>
</xsl:for-each>
</xsl:variable>

<tr>
<td align="right">Total</td>
<td>
<xsl:value-of select="sum(exsl:node-set($itemTotals))" />
</td>
</tr>
</table>
</xsl:template>

</xsl:stylesheet>

0

Решение

использование <xsl:value-of select="sum(exsl:node-set($itemTotals)/total)"/> вычислить сумму total элементы в вашем фрагменте дерева результатов преобразованы в набор узлов с корневым узлом, содержащим total элементы.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]