如何使用身份转换模式转换XML文件,但仅限于特定的子树?

时间:2013-04-16 19:45:09

标签: xml xslt

我想使用身份转换转换XML文件,以及一些其他模板来调整内容。但我只想将所有这些应用于特定的子树,并忽略XML文档的其余部分。我应该使用特定的模式来做到这一点吗?我的第一个猜测是使用模式,但如果可以,我宁愿避免使用模式。

1 个答案:

答案 0 :(得分:1)

因此,如果我理解正确,您希望在输入的子树上执行XSLT(基于身份转换),并从结果中省略该子树之外的所有内容?如果是这样,你可以这样做:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>

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

  <xsl:template match="/">
    <xsl:apply-templates select="/path/to/subtree" />
  </xsl:template>

  <!-- Other templates -->
</xsl:stylesheet>