1

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

4

2 回答 2

3

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

这取决于所使用的 XSLT 处理器。如果 XSLT 处理器有一个好的优化器,在很多情况下它会自己进行因式分解,而手动执行此操作并没有真正的速度增益。

然而:

  1. 将评估结果“保存”在变量中可以使代码更短且更具可读性。

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

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

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

对于某些 XSLT 2.0 处理器,例如 Saxon,甚至可以xsl:function通过打开函数记忆来优化执行。在 Saxon 的情况下,这是通过将扩展属性设置为 来完成saxon:memo-function"yes"

于 2013-01-23T13:11:44.350 回答
0

这是我的经验,但更重要的是它提高了代码的可读性。它还使代码重用变得更简单。

于 2013-01-23T12:53:35.053 回答