1

重複した ID を含む XML ファイルが 1 つあります。

その重複した 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 に答える