Xpath表达式VS XSL变量

时间:2013-01-23 12:50:30

标签: xslt xpath

当使用xsl变量而不是XPath表达式时,XSLT的性能是否会提高? 更新:我正在使用Xalan进行处理。

2 个答案:

答案 0 :(得分:3)

  

当使用xsl变量时,XSLT的性能是否会提高   XPath表达式?

这取决于所使用的XSLT处理器。如果XSLT处理器有一个很好的优化器,在许多情况下它会自行进行分解,并且没有真正的速度增益这样做。

然而:

  1. 在变量中“保存”评估结果可以使代码更短,更易读。

  2. 这是DRY(不要重复自己)最佳实践的良好应用。

  3. 依靠优化器并不总是有效。

  4. 在编写可移植代码时,我们不应该依赖优化器,这些代码旨在由多个不同的XSLT处理器执行 - 例如在编写函数/模板库时。

  5. 对于一些XSLT 2.0处理器,例如Saxon,通过启用功能记忆,甚至可以优化xsl:function执行。对于Saxon,可以通过将扩展属性 saxon:memo-function 设置为"yes"来完成。

答案 1 :(得分:0)

根据我的经验,它确实可以,但更重要的是它提高了代码的可读性。它还使代码重用更简单。