当使用xsl变量而不是XPath表达式时,XSLT的性能是否会提高? 更新:我正在使用Xalan进行处理。
答案 0 :(得分:3)
当使用xsl变量时,XSLT的性能是否会提高 XPath表达式?
这取决于所使用的XSLT处理器。如果XSLT处理器有一个很好的优化器,在许多情况下它会自行进行分解,并且没有真正的速度增益这样做。
然而:
在变量中“保存”评估结果可以使代码更短,更易读。
这是DRY(不要重复自己)最佳实践的良好应用。
依靠优化器并不总是有效。
在编写可移植代码时,我们不应该依赖优化器,这些代码旨在由多个不同的XSLT处理器执行 - 例如在编写函数/模板库时。
对于一些XSLT 2.0处理器,例如Saxon,通过启用功能记忆,甚至可以优化xsl:function
执行。对于Saxon,可以通过将扩展属性 saxon:memo-function
设置为"yes"
来完成。
答案 1 :(得分:0)
根据我的经验,它确实可以,但更重要的是它提高了代码的可读性。它还使代码重用更简单。