Xml xsl:copy和xsl:copy的区别是什么?
我看不出Xml xsl:copy和xsl:copy的区别是什么?,xml,xslt,Xml,Xslt,我看不出xsl:copy和xsl:copy of之间的区别 在哪种情况下我应该使用哪一个?xsl:copy是一个浅拷贝。如果您只想复制当前节点(spec speak中的“上下文项”),请使用它。 xsl:copy of是一个深度副本。如果要复制当前节点下的完整节点树,请使用它。要获得更彻底和完整的解释,请阅读第一条评论中链接到的规范。简而言之,是一个浅显的副本;这是一个深度复制 何时使用xsl:copyvsxsl:copy of 仅复制上下文项时使用,并且 为上下文项的子项制定其他计划 要复制
xsl:copy
和xsl:copy of
之间的区别
在哪种情况下我应该使用哪一个?xsl:copy是一个浅拷贝。如果您只想复制当前节点(spec speak中的“上下文项”),请使用它。
xsl:copy of
是一个深度副本。如果要复制当前节点下的完整节点树,请使用它。要获得更彻底和完整的解释,请阅读第一条评论中链接到的规范。简而言之,是一个浅显的副本;这是一个深度复制
何时使用xsl:copy
vsxsl:copy of
- 仅复制上下文项时使用,并且 为上下文项的子项制定其他计划
- 要复制XPath选定节点和 他们的孩子,递归地。
- 该指令复制上下文项,但不复制任何上下文项 它的子节点的
- 这是一份肤浅的副本
- 指令不能具有
XPath@select
xsl:copy
的一个非常常见的用法可以在以下目录中找到:
请注意,此处节点本身通过复制,子节点随后通过xsl:apply templates
进行转换,从而使其他模板有机会介入转换
xsl注释:的副本
- 指令在其required
属性中计算XPath,并递归复制所选节点及其子节点@select
- 这是一份深度拷贝
- 指令必须具有
XPath@select
请注意,可能在标识转换中使用,但是在递归过程中允许其他模板匹配所提供的灵活性可能会丢失。请仔细查看规范和。您在哪里查找这两个说明的解释,你觉得困惑的解释是什么?
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>