浏览 XPath.compile
API,我的印象是它会返回一个有效的 XPathExpression
或抛出。
事实上,任何编译器都会返回一个不可“运行”的对象,这是没有意义的。
因此,我有点惊讶的是,在评估
文档时,有效的XPathExpression
仍然会抛出异常,特别是根据它的描述,
XPathExpressionException represents an error in an XPath expression
这有道理吗? compile
d 表达式还会有错误吗?
最佳答案
XPath 表达式中的静态错误(例如不正确的 XPath 语法,或对未定义的函数、变量或命名空间的引用)将在compile() 方法中引发错误。
XPath 表达式中的动态错误将会从evaluate() 方法中引发异常。
XPath 1.0 的设计目的是减少动态错误。其中一个示例是 count(3),这是一个错误,因为 count() 只能应用于节点集。在 XPath 2.0 中,可能存在更多动态错误。
关于java - XPathExpression.evaluate 何时抛出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7307471/