Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml xsl:copy和xsl:copy的区别是什么?_Xml_Xslt - Fatal编程技术网

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
vs
xsl:copy of
  • 仅复制上下文项时使用,并且 为上下文项的子项制定其他计划
  • 要复制XPath选定节点和 他们的孩子,递归地。
xsl:copy的注释
  • 该指令复制上下文项,但不复制任何上下文项 它的子节点的
  • 这是一份肤浅的副本
  • 指令不能具有
    @select
    XPath
xsl:copy
的一个非常常见的用法可以在以下目录中找到:


请注意,此处节点本身通过复制,子节点随后通过
xsl:apply templates
进行转换,从而使其他模板有机会介入转换

xsl注释:的副本
  • 指令在其required
    @select
    属性中计算XPath,并递归复制所选节点及其子节点
  • 这是一份深度拷贝
  • 指令必须具有
    @select
    XPath

请注意,可能在标识转换中使用,但是在递归过程中允许其他模板匹配所提供的灵活性可能会丢失。

请仔细查看规范和。您在哪里查找这两个说明的解释,你觉得困惑的解释是什么?
<xsl:template match="@*|node()">
  <xsl:copy>
    <xsl:apply-templates select="@*|node()"/>
  </xsl:copy>
</xsl:template>