在进行 XSLT 优化时,我发现通过避免父节点查找 XSLT 运行持续时间从 1 小时减少到 ~20 秒。
我只是通过传递相关参数来避免低于 xsl 线以做出所需的决定,并且性能得到了提升。
<xsl:if test="parent::node() = /test">
...
</xsl:if>
我正在使用 saxon8.jar 库来执行使用基于 SAX 的 XML 解析的 XSLT。
我知道 SAX 是基于推送的,因此返回的成本很高。但是,希望对这里涉及的成本和算法有更多的了解。
此外,在我的 XSL 中,我在不同的执行步骤中多次使用 Xpath 引用相同的转发节点。那么,为什么这没有像引用父节点那样变成瓶颈呢?