如何为XPathExpression的evaluate()方法获取NodeSet - 对于saxon 9.3 lib

时间:2011-07-15 10:37:13

标签: xslt saxon

我正在使用saxon lib 9.3进行XPath evluation

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

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

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

 exp.evaluate(domSource,XPathConstants.NODESET)

saxon 9.3 lib中是否有任何等效物?

1 个答案:

答案 0 :(得分:0)

抱歉,我错过了这个问题。如果您想确保获得撒克逊问题的答案,请在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。