在XSLT 1.0中,要在迭代嵌套的for-each循环中获取外部循环计数器,可以使用递归的方式实现。具体步骤如下:
下面是一个示例代码:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:template match="/">
<xsl:variable name="outerCounter" select="0" />
<xsl:for-each select="outerNodes">
<xsl:variable name="outerCounter" select="$outerCounter + 1" />
<xsl:for-each select="innerNodes">
<xsl:call-template name="nestedLoop">
<xsl:with-param name="outerCounterParam" select="$outerCounter" />
</xsl:call-template>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
<xsl:template name="nestedLoop">
<xsl:param name="outerCounterParam" />
<xsl:variable name="innerCounter" select="$outerCounterParam" />
<xsl:value-of select="concat('Outer Counter: ', $outerCounterParam, ', Inner Counter: ', $innerCounter)" />
</xsl:template>
</xsl:stylesheet>
在上述示例中,外部for-each循环遍历"outerNodes"节点,内部for-each循环遍历"innerNodes"节点。在内部循环中,通过调用名为"nestedLoop"的模板,并将外部循环计数器作为参数传递给模板。模板中将参数的值保存到局部变量"innerCounter"中,并输出内部循环计数器和外部循环计数器的值。
请注意,XSLT 1.0中并没有提供直接获取外部循环计数器的内置函数或语法。因此,需要借助递归和参数传递来实现这个功能。
领取专属 10元无门槛券
手把手带您无忧上云