我可以在org.w3c DOM模型上使用Saxon吗



在我们的项目中,我们有自己的org.w3c.dom.*接口实现。

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

是的。您可以使用JAXP XPath接口或s9api接口:我们建议使用s9api,因为JAXP接口从未为XPath 2.0的更丰富的数据模型设计过,例如,无法返回字符串序列。

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

SaxonEE9.8引入了一种处理DOM树导航的新方法,称为Domino模型。这会导致为DOM树构建索引以提高后续导航性能的前期成本。如果DOM是可变的(也就是说,如果内容在一个XPath表达式求值和另一个表达式求值之间发生变化),请不要使用它,因为这样的变化会使索引无效。

最新更新