在 XSLT 1.0 中迭代嵌套的 for-each 循环时获取外部循环计数器

Get outer loop counter while iterating nested for-each loop in XSLT 1.0

我有一个 XML 如下所示:

<customer>
<fieldgroup>
<field index="1">field1</field>
<field index="2">field1</field>
</fieldgroup>
<fieldgroup>
<field index="1">field3</field>
<field index="2">field4</field>
</fieldgroup>
</customer>

标签在重复,里面的标签也在重复。我正在使用 XST 1.0 将其转换为目标 XML 消息,我将不得不在其中迭代并喜欢:

<xsl for-each select="fieldgroup">
<xsl for-each select="field">
....
</xsl-for-each>
</xsl:for-each>

我将不得不跟踪它正在迭代的项目。在我的第二个 for-each 循环内的代码中,我可以获得循环的循环计数器,但是我将如何获得迭代的父 for-each 循环的循环计数器?

简单的用一个变量来存储<fieldgroup>个元素的position()

<xsl:template match="customer">
  <xsl:for-each select="fieldgroup">
    <xsl:variable name="outerIndex" select="position()" />
    <xsl:for-each select="field">
        <xsl:value-of select="concat('#outer',$outerIndex,'#inner: ',@index,'#&#xa;')" />
    </xsl:for-each>
  </xsl:for-each>
</xsl:template>

输出为:

#outer1#inner: 1#
#outer1#inner: 2#
#outer2#inner: 1#
#outer2#inner: 2#