1

有一个 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>

我需要以下格式::

<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>

任何人都可以让我以正确的方式,如何为此编写XSL?

谢谢

4

1 回答 1

0

如果您将此模板添加到 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>
于 2013-01-09T02:39:13.450 回答