【发布时间】:2018-01-26 22:21:49
【问题描述】:
Saxon 或其他库中是否有方法可以告诉我 XPath 查询是否是有效语法。不是它是否会返回某些东西,不是节点是否存在于 XML 文件中,而是它是否是有效的语法。
我需要使用它来确定查询是 XPath 还是我们自己处理的方程式。
谢谢 - 戴夫
【问题讨论】:
-
This method 如果无法编译表达式,则抛出异常。
Saxon 或其他库中是否有方法可以告诉我 XPath 查询是否是有效语法。不是它是否会返回某些东西,不是节点是否存在于 XML 文件中,而是它是否是有效的语法。
我需要使用它来确定查询是 XPath 还是我们自己处理的方程式。
谢谢 - 戴夫
【问题讨论】:
最好的办法是调用 XPathCompiler.compile() 并捕获异常。我知道您担心例外的成本,但是在撒克逊人没有办法做到这一点而没有例外。
请注意,短语“有效语法”需要限定。 compile() 方法不仅会检查语法,还会检查其他静态错误,例如对不存在的变量和函数的引用。您可以通过为解析提供合适的静态上下文来影响此检查。
【讨论】: