什么时候XPathExpression.evaluate抛出?

时间:2011-09-05 11:36:05

标签: java exception xpath semantics

通过XPath.compile API,我的印象是它会返回有效的XPathExpression或抛出。

实际上,任何编译器都会返回一个不是“runnable”的对象是没有意义的。

因此,当XPathExpression文档时,有效的evaluate 仍然仍然投掷,我感到有点惊讶,特别是因为根据它的描述,

  

XPathExpressionException表示XPath表达式中的错误

这有意义吗? compile d表达式是否仍有错误?

1 个答案:

答案 0 :(得分:3)

XPath表达式中的静态错误(例如,错误的XPath语法,或对未定义的函数,变量或命名空间的引用)将从compile()方法中引发错误。

XPath表达式中的动态错误将引发evaluate()方法的异常。

XPath 1.0旨在获得极少的动态错误。一个例子是count(3),这是一个错误,因为count()只能应用于节点集。在XPath 2.0中,可能存在更多动态错误。