我想增加一個計數器,當條件滿足時,例如,如果一個final_score超過30,count = 1,所以如果3分數超過30,final_score應該是3.要獲得分數我需要添加前的分數,從而最終得分是所有其他分數xsl增量計數器條件
例如計算
示例XML
<scores>
<score result="20" />
<score result="10" />
<score redult="5" />
</score>
主要XSL
<xsl:call-template name="scores">
<xsl:with-param name="prev_count" select="0"/>
</xsl:call-template>
模板分數
<template name="scores">
<param name="counter" select="0">
<xsl:variable name="prev_counter" select="$counter+1" />
<xsl:for-each select="persons/person[[email protected]]">//get all the scores
<xsl:varable name="total_score" select="sum(scores/score)" />//sum them all up
<xsl:if test="total_score > 40" > //check the result
<xsl:value-of select="$counter">
<xsl:call-template name="scores">
<xsl:with-param name="counter" select="$counter+1"/>
</xsl:call-template>
</xsl:if>
<xsl:for-each>
</xsl:template>
</xsl:template>
我只是不能工作了,或者是我的方法的路要走?
你在這裏向我們展示了完整的XML嗎?您的XSLT包含對** person **元素的引用,這些元素不在您的XML中。它看起來像你試圖計數所有後代**得分**元素的總和大於30(或40)的數字** person **元素。那是對的嗎?謝謝! –