Xml XSLT中的行号

Xml XSLT中的行号,xml,xslt,Xml,Xslt,有一个XML文件包含重复的ID 我想根据重复的ID添加一些行号 示例XML文件如下所示: <ROOT> <record1> <ID>123</ID> <Name>abc</Name> </record1> <record2> <ID>123</ID> <Name>def</Name> <

有一个XML文件包含重复的ID

我想根据重复的ID添加一些行号

示例XML文件如下所示:

<ROOT>
<record1>
        <ID>123</ID>
        <Name>abc</Name>
</record1>
<record2>
        <ID>123</ID>
        <Name>def</Name>
</record2>
<record3>
        <ID>456</ID>
        <Name>ghi</Name>
</record3>
</ROOT>

123
abc
123
def
456
ghi
我需要以下格式的:

<ROOT>
<record1>
        <ID>123_1</ID>
        <Name>abc</Name>
</record1>
<record2>
        <ID>123_2</ID>
        <Name>def</Name>
</record2>
<record3>
        <ID>456</ID>
        <Name>ghi</Name>
</record3>
</ROOT>

123_1
abc
123_2
def
456
ghi
有人能告诉我正确的方法吗?如何为此编写XSL


谢谢

如果您将此模板添加到XSLT标识转换中,您应该已经做好以下准备:

<xsl:template match="ID">
    <xsl:copy>
        <xsl:value-of select"." />
        <xsl:if test="//ID[. = current()]">
              <xsl:value-of select="concat('_', count(preceding::ID[. = current()]) + 1)" />
        </xsl:when>
    </xsl:copy>
</xsl:template>


您自己尝试过什么吗?如果没有,为什么不呢?我发现了一个与你的问题类似的线索:我有一个解决方案给你,但我必须同意@Tomalak-为了帮助你学习,我很想看看你已经尝试了什么。