我知道XSL中的变量是不可变的。但在我的场景中,我想增加一个全局变量并稍后使用该值。有没有其他方法可以做到这一点?我在代码中添加了足够的注释,以使我的问题更加清晰。请注意我使用的是XSLT 1.0
<xsl:variable name="counter">0</xsl:variable>
<xsl:template match="/">
<xsl:for-each select="Condition_ABC">
<xsl:variable name="returnValue"> <!--returnValue is the return value from the named template GetValue -->
<xsl:call-template name="GetValue"/>
</xsl:variable>
<xsl:if test="not($returnValue= '')">
<!-- If the returned value is not null
Here I want to add the increment logic, something like this
$counter = $counter+ 1 -->
<xsl:value-of select="."/>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template match="some_pattern">
<Attribute>
<!-- the final 'counter' value from above xsl block needs to be outputted here -->
<xsl:value-of select="$counter"/>
</Attribute>
</xsl:template>