流式处理 XPath 评估

2022-09-03 15:18:18

是否有任何生产就绪库用于针对提供的 xml 文档进行流式处理 XPath 表达式计算?我的研究表明,大多数现有解决方案在计算 xpath 表达式之前将整个 DOM 树加载到内存中。


答案 1

XSLT 3.0 提供流式处理模式,这将成为 XSLT 3.0 W3C 规范成为 W3C 建议的标准。

在撰写此答案时(2011 年 5 月),Saxon 为 XSLT 3.0 流提供了一些支持。


答案 2

这对于完整的 XPath 实现是否可行,因为 XPath 语法允许:

/AAA/XXX/following::*

/AAA/BBB/following-sibling::*

这意味着前瞻性要求?也就是说,从特定节点,您无论如何都必须加载文档的其余部分。

Nux 库(特别是 StreamingPathFilter)的文档说明了这一点,并引用了一些依赖于 XPath 子集的实现。Nux声称可以执行一些流查询功能,但鉴于上述情况,在XPath实现方面会有一些限制。