首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在XSLT 1.0中迭代嵌套的for-each循环时获取外部循环计数器

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

Stack Overflow用户
提问于 2020-10-05 22:06:58
回答 1查看 70关注 0票数 0

我有一个如下所示的XML:

代码语言:javascript
运行
复制
<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>

标签是重复的,它里面的标签也是重复的。我正在使用XST1.0将其转换为目标XML消息,我将不得不遍历和如下所示:

代码语言:javascript
运行
复制
<xsl for-each select="fieldgroup">
<xsl for-each select="field">
....
</xsl-for-each>
</xsl:for-each>

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-05 23:29:52

只需使用一个变量来存储<fieldgroup>元素的position()

代码语言:javascript
运行
复制
<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>

输出为:

代码语言:javascript
运行
复制
#outer1#inner: 1#
#outer1#inner: 2#
#outer2#inner: 1#
#outer2#inner: 2#
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64210271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档