0

我是 XSL 的新手,我正在编写下一个代码来计算 Win 值的总和。

<xsl:variable name="WinAmount">
        <xsl:number value="number(0)"/>
        <xsl:for-each select="Event">
            <xsl:if test="SpinTheReelsInfo">
                <xsl:number value="number(number($WinAmount) + number(SpinTheReelsInfo/Win))"/>
            </xsl:if>   
            <xsl:if test="SpinFreeReelsInfo">
                <xsl:number value="number(number($WinAmount) + number(SpinFreeReelsInfo/Win))"/>
            </xsl:if>               
        </xsl:for-each>

    </xsl:variable>
    <xsl:value-of select="$WinAmount"/>

在我的 xml 文件中,win 标签与下一个值匹配。

<Win>0</Win>
....
<Win>20</Win>
.....
<Win>200</Win>

但结果是 121201 我认为这是因为数字连接并且每个数字都增加了。

但是为什么会这样呢?我怎样才能总结它们?我可以使用哪个运算符?请帮我!谢谢!

更新:我的 XML

<Game>
            <GameSeqNo>1</GameSeqNo>
            <Event>
                <Time>2012-12-20T08:24:26Z</Time>
                <SpinTheReelsInfo>
                    <Win>0</Win>
                    <JP>0</JP>
                </SpinTheReelsInfo>
            </Event>
            <Event>
                <Time>2012-12-20T08:24:42Z</Time>
                <PickFieldInfo>
                </PickFieldInfo>
            </Event>
            <Event>
                <Time>2012-12-20T08:25:07Z</Time>
                <SpinFreeReelsInfo>
                    <Win>20</Win>
                    <JP>0</JP>
                </SpinFreeReelsInfo>
            </Event>
            <Event>
                <Time>2012-12-20T08:25:18Z</Time>
                <SpinFreeReelsInfo>
                    <Win>200</Win>
                    <JP>0</JP>
                </SpinFreeReelsInfo>
            </Event>
</Game>
4

1 回答 1

3

我认为我在评论中的建议就足够了,这是一个完整的样式表:

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

<xsl:template match="Game">
  <xsl:value-of select="sum(Event/SpinTheReelsInfo/Win | Event/SpinFreeReelsInfo/Win)"/>
</xsl:template>

</xsl:stylesheet>

输出是220

于 2012-12-20T11:08:08.030 回答