XSLT - 将节点移动到父节点

时间:2016-03-01 17:23:16

标签: xml xslt xslt-1.0 xslt-2.0

我需要一个XSLT来移动" NODES"从CATALOG / NODES / NODE [1]到CATALOG / NODES / NODE [0]。 我尝试了一切,但没有任何工作呢:(

我的XML文件:

<CATALOG>
<NODES>
<NODE>
<NODES/>
<NODES/>
</NODE>
<NODE>
<NODES/>
<NODES/>
<NODES/>
</NODE>
</NODES>
</CATALOG>

应该是这样的:

<CATALOG>
<NODES>
<NODE>
<NODES/>
<NODES/>
<NODES/>
<NODES/>
<NODES/>
</NODE>
</NODES>
</CATALOG>

我在图片上的XML详情!

Moving the NODES up

1 个答案:

答案 0 :(得分:0)

这个问题很模糊。 AFAICT,以下样式表:

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="/CATALOG/NODES">
    <xsl:copy>
        <NODE>
            <xsl:apply-templates select="NODE/NODES"/>
        </NODE>
    </xsl:copy>
</xsl:template>

</xsl:stylesheet>
当应用于您的输入时,

将产生预期输出。但这可能只是巧合。