通过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/

10-09 05:36