我听说大多数时候通常可以(并且更好)在编写XSLT时使用apply-templates而不是for-each.这是真的?如果是这样,使用apply-templates有什么好处?
<xsl:for-each>如果确切地知道如何<xsl:for-each>处理,使用绝不是有害的.
麻烦的是许多XSLT的新手在命令式编程方面有经验,可以<xsl:for-each>替代他们最喜欢的PL中的"循环",并认为它允许他们执行不可能的操作 - 比如递增计数器或任何其他修改一个已定义的<xsl:variable>.
<xsl:for-each>XSLT 1.0中一个必不可少的用途是更改当前文档 - 这通常是为了能够key()在文档上使用该函数(与当前源XML文档不同),例如有效地访问驻留的查找表.在自己的xml文档中.
另一方面,使用<xsl:template>和<xsl:apply-templates>更强大和优雅.
以下是两种方法之间最重要的一些差异:
xsl:apply-templates也更加丰富,比更深xsl:for-each,甚至仅仅是因为我们不知道什么代码将选择的节点上应用-在一般情况下,该代码将是节点列表的不同节点不同.
将要应用的代码可以在编写xsl:apply templates 之后以及不知道原始作者的人员的方式编写.
该FXSL库的实现在XSLT高阶函数(HOF)是不可能的,如果XSLT没有足够的<xsl:apply-templates>指令.
简介:模板和<xsl:apply-templates>指令是XSLT如何实现和处理多态的.
参考:请参阅此完整主题:http://www.stylusstudio.com/xsllist/200411/post60540.html
| 归档时间: |
|
| 查看次数: |
276 次 |
| 最近记录: |