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

时间:2019-03-04 15:13:05

标签: xslt xslt-1.0 xls

下面是我的输入内容:

<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吗?

2 个答案:

答案 0 :(得分:0)

好吧,这仅仅是为了匹配父节点并执行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

答案 1 :(得分:0)

您可以使用TreeOps树转换可视化工具来实现此目的。 TreeOps(https://github.com/treeops/treeops):

  1. 加载XML

  2. 添加转换-向上移动“行/行/其他”

  3. 添加转换-向上移动“行/其他”

  4. 添加转换-删除“行”

Input and result Transformations