【发布时间】:2015-06-22 07:39:55
【问题描述】:
我正在尝试为我的输入 xml 生成两种类型的序列号,其中重复包含父元素和子元素。输入见下文
我有一个像这样的输入 xml:
<family>
<parent>P1<parent>
<child>C1<child>
</family>
<family>
<parent>P1<parent>
<child>C2<child>
</family>
<family>
<parent>P2<parent>
<child>C3<child>
</family>
<family>
<parent>P2<parent>
<child>C4<child>
</family>
<family>
<parent>P2<parent>
<child>C5<child>
</family>
我的预期输出是包含内容的文本文件:
00001 C1 00001
00001 C2 00002
00002 C3 00001
00002 C4 00002
00002 C5 00003
第一个序列号基于父级,第二个基于子级。 我尝试在我的 xsl 中使用
<xsl:for-each-group select="family" group-by="child">
<xsl:value-of select="format-number(position(),'00000')"/>
<xsl:value-of select="child"/>
<xsl:value-of select="format-number(position(),'00000')"/>
</xsl:for-each-group>
对于上面的 xsl,我得到了双方相同的序列号。是否有任何特定的功能或分组概念可以实现,以便我可以实现所需的输出? 请帮我梳理一下这个逻辑。
【问题讨论】: