有一个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?
由于
答案 0 :(得分: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>