为什么这不会复制文档中的所有节点,比如xslt identity transform?
<xsl:template match="/">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
为什么模板也必须匹配@* | node()
?
答案 0 :(得分:1)
身份转换模板递归。当它打电话时:
<xsl:apply-templates select="@* | node()"/>
它将本身(除非存在具有更高优先级的另一个模板)应用于当前节点的子属性和节点。
您的版本仅匹配并处理/
根节点。当它要求将模板应用于子项时,处理器将查找与这些模板匹配的模板 - 并且您的模板将不在其中。