2017-11-10 101 views
0

在我们的项目上,我们自己实现了org.w3c.dom。*接口。我可以在org.w3c DOM模型上使用Saxon吗?

Saxon是否支持对XPath 2.0查询的评估不是通过XML本身,而是通过org.w3c.dom。*实例的实例进行评估?

+0

请参阅https://www.saxonica.com/html/documentation/sourcedocs/thirdparty.html –

回答

1

是的,它的确如此。您可以使用JAXP XPath接口或s9api接口:我们建议使用s9api,因为JAXP接口从来没有为XPath 2.0的更丰富的数据模型而设计,例如无法返回一系列字符串。

当使用Saxon的原生TinyTree模型时,Saxon比DOM运行时慢了5-10倍。当然,如果是您自己实现DOM,那么(a)性能可能会有所不同,并且(b)总会存在错误的风险,例如您的DOM可能与DOM规范100%一致,但仍然与撒克逊已经测试过的任何DOM实现行为不同。

Saxon-EE 9.8引入了一种处理DOM树导航的新方法,称为Domino模型。这为建立DOM树的索引产生了前期成本,以提高后续导航的性能。如果DOM是可变的(即,如果内容在一个XPath表达式评估与另一个XPath表达式评估之间改变),则不要使用它,因为这种更改会使索引无效。

相关问题