通过XPath.compile
API,我的印象是它将返回有效的XPathExpression
或引发。
确实,任何编译器都返回不“可运行”的对象是没有意义的。
因此,令我惊讶的是,在XPathExpression
编写文档时仍然会抛出有效的evaluate
,尤其是根据其描述,
XPathExpressionException表示XPath表达式中的错误
那有意义吗? compile
d表达式仍然可以有错误吗?
最佳答案
XPath表达式中的静态错误(例如,错误的XPath语法或对未定义函数,变量或名称空间的引用)将引发来自compile()方法的错误。
XPath表达式中的动态错误将引发validate()方法的异常。
XPath 1.0被设计为几乎没有动态错误。一个例子是count(3),这是一个错误,因为count()仅可应用于节点集。在XPath 2.0中,可能存在更多动态错误。
关于java - XPathExpression.evaluate什么时候抛出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7307471/