xslt递归基础知识

时间:2014-07-24 17:04:50

标签: xslt recursion

请原谅我的初学者问题。

我现在已经看过很多次这样的xsl模板,我不知道它实际上是做什么的。有人可以解释一下吗?谢谢!

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

1 个答案:

答案 0 :(得分:1)

该模板是身份转换模板,它匹配除文档节点和命名空间节点之外的任何节点,并执行节点的浅表副本,然后处理其属性和子节点(就存在而言)。

模板通常是想要更改,删除和/或添加某些节点的转换的起点,因为您可以覆盖,例如。

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

foo元素转换为bar元素,例如

<xsl:template match="baz"/>

删除baz元素,例如

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

whatever元素添加到foobar个元素。