如何使用XSL从父节点复制所有子节点



以下是我的输入:

<csv>
<row>
    <stuff>a</stuff>
    <more>1</more>
    <evenmore>123</evenmore>
    <roww>
        <other>1345</other>
       <other>13845</other>
    </roww>
</row>
</csv>

预期输出:

 <roww>
        <other>1345</other>
       <other>13845</other>
    </roww>

谁能让我知道如何使用XSL?

好吧,这仅仅是为了匹配父节点并做copy-of

<xsl:copy-of>元素创建了当前节点的副本。

注意:名称空间节点,子节点和当前节点的属性也会自动复制!

XSLT 1.0 实现预期输出的解决方案可能是:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/csv">
    <xsl:copy-of select="row/roww" />
</xsl:template>
</xsl:stylesheet>

https://xsltfiddle.liberty-development.net/bfn1y93

您可以使用TreeOps Tree Trunderation Visual Tool来实现这一目标。TreeOps(https://github.com/treeops/treeops):

  1. 加载xml

  2. 添加转换 - 向上移动"行/roww/other&quot"

  3. 添加转换 - 移动"行/其他"

  4. 添加转换 - 删除"行"

输入和结果转换

最新更新