复制&使用XSL重命名元素

时间:2017-07-21 13:49:59

标签: xslt

我有一个像这样的XML:

<tu>
<prop type="x-idiom-source-ipath">DOMAIN/SUBDOMAIN/FILENAME</prop>
    <tuv xml:lang="IT-IT">
        <seg>Prova</seg>
    </tuv>
    <tuv xml:lang="EN-GB">
        <seg>Test</seg>
    </tuv>
</tu>

我想复制prop元素两次并重命名:

<tu>
 <prop type="domain">DOMAIN/SUBDOMAIN/FILENAME</prop>
<prop type="subdomain">DOMAIN/SUBDOMAIN/FILENAME</prop>
<prop type="filename">DOMAIN/SUBDOMAIN/FILENAME</prop>
        <tuv xml:lang="IT-IT">
            <seg>Prova</seg>
        </tuv>
        <tuv xml:lang="EN-GB">
            <seg>Test</seg>
        </tuv>
    </tu>

我该怎么做?我不明白如何复制和复制元素,我不够称职。

谢谢

1 个答案:

答案 0 :(得分:0)

嗯,你可以做到:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>

<!-- identity transform -->
<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="prop">
    <prop type="domain">
        <xsl:value-of select="." />
    </prop>
    <prop type="subdomain">
        <xsl:value-of select="." />
    </prop>
    <prop type="filename">
        <xsl:value-of select="." />
    </prop>
</xsl:template>

</xsl:stylesheet>