通过XPath.compile
API,我的印象是它会返回有效的XPathExpression
或抛出。
实际上,任何编译器都会返回一个不是“runnable”的对象是没有意义的。
因此,当XPathExpression
文档时,有效的evaluate
仍然仍然投掷,我感到有点惊讶,特别是因为根据它的描述,
XPathExpressionException表示XPath表达式中的错误
这有意义吗? compile
d表达式是否仍有错误?
答案 0 :(得分:3)
XPath表达式中的静态错误(例如,错误的XPath语法,或对未定义的函数,变量或命名空间的引用)将从compile()方法中引发错误。
XPath表达式中的动态错误将引发evaluate()方法的异常。
XPath 1.0旨在获得极少的动态错误。一个例子是count(3),这是一个错误,因为count()只能应用于节点集。在XPath 2.0中,可能存在更多动态错误。