java - XPathExpression.evaluate 何时抛出?

标签 java exception xpath semantics

浏览 XPath.compile API,我的印象是它会返回一个有效的 XPathExpression 或抛出。

事实上,任何编译器都会返回一个不可“运行”的对象,这是没有意义的。

因此,我有点惊讶的是,在评估文档时,有效的XPathExpression仍然会抛出异常,特别是根据它的描述,

XPathExpressionException represents an error in an XPath expression

这有道理吗? compiled 表达式还会有错误吗?

最佳答案

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

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

XPath 1.0 的设计目的是减少动态错误。其中一个示例是 count(3),这是一个错误,因为 count() 只能应用于节点集。在 XPath 2.0 中,可能存在更多动态错误。

关于java - XPathExpression.evaluate 何时抛出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7307471/

相关文章:

python - 从悬停元素获取定位器

java - 怎么解决?。线程 "main"java.lang.UnsatisfiedLinkError : Can't find dependent libraries 中出现异常

java - java.lang.reflect.Proxy 实例是否经过特殊处理以进行终结?

Java : replacing text URL with clickable HTML link

java - spring-data-rest,与连接表的多对多关系

堆栈对象的 C++ 构造函数异常处理

xml - 计算 XPath 1.0 中的不同内容

终端中存在 jar 文件的 java.lang.NoClassDefFoundError

python - 为什么 Pylint 在此 raise 语句中给出错误 E0702,引发 NoneType?

java - 如何使用xpath获取href值