1

我正在使用 saxon lib 9.3 进行 XPath 评估

以下代码返回 TinyElementImpl 实例列表 -

 XPathEvaluator evaluator = new XPathEvaluator();
 XPathExpression exp = evaluator.createExpression("//a[matches(.,'#...#')]");
 List<Object> result = exp.evaluate(domSource);

以前的版本支持评估方法,例如返回 NodeSet

 exp.evaluate(domSource,XPathConstants.NODESET)

撒克逊 9.3 库中是否有任何等价物?

4

1 回答 1

0

对不起,我错过了这个问题。如果您想确保获得 Saxon 问题的答案,请在 SourceForge 的 saxon-help 邮件列表或论坛上提问。

如果您的 XPathEvaluator 是 net.sf.saxon.xpath.XPathEvaluator,那么此方法在 9.3 中仍然存在。也许您错误地实例化了 net.sf.saxon.sxpath.XPathEvaluator?

这里的另一个困惑是我会想象 domSource 是 DOMSource 的一个实例,但如果是这种情况,我会期望结果包含 DOM 节点而不是 Saxon TinyTree 节点。这里的困难是你没有展示足够的代码。

如果您想从 Saxon 的 XPath 处理器中获得最佳结果,我建议使用 s9api 接口而不是 JAXP 接口,后者非常关注 DOM 和 XPath 1.0。

于 2011-07-23T09:29:06.873 回答