xsl:递增全局变量

时间:2013-05-19 05:52:33

标签: xslt global-variables xslt-1.0 immutability

我知道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>

0 个答案:

没有答案