xslt sum свързва, вместо да добавя

така че се опитвам да напиша някакъв 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>

разгледах други въпроси в stackoverflow, но не можах да намеря такъв, който отговаря на моя точен сценарий. надявам се да намеря някои отговори тук :) TIA P.S. използвам xslt 1.0 и го използвам в PHP


person Salman Muhammad    schedule 15.10.2018    source източник


Отговори (1)


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

person Martin Honnen    schedule 15.10.2018