使用xslt复制xml跳过顶级节点

时间:2012-03-28 09:38:09

标签: xml xslt

如何复制跳过某些顶级节点的xml文档。例如:

输入:

<root>
 <subroot>
   <nodeX id="1">
     <!-- inner structure -->
   </nodeX>
   <nodeX id="2">
     <!-- inner structure -->
   </nodeX>
   <!-- other nodes -->
  </subroot>
<root>

输出:

   <nodeX id="1">
     <!-- inner structure -->
   </nodeX>
   <nodeX id="2">
     <!-- inner structure -->
   </nodeX>

1 个答案:

答案 0 :(得分:3)

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

<xsl:template match="root | subroot">
  <xsl:apply-templates/>
</xsl:template>

应。如果您想要或需要更通用的东西,那么制作第二个模板

<xsl:template match="/* | /*/*">
  <xsl:apply-templates/>
</xsl:template>