关于saxon:确定XPath查询是否有效

Determine if an XPath query is valid

Saxon或其他库中是否有一个方法可以告诉我XPath查询是否是有效的语法。 如果它将返回某些内容,则不是,如果节点存在于XML文件中,而是它是否是有效的语法。

我需要使用它来确定查询是否是XPath与我们自己处理的等式。

谢谢 - 戴夫


最好的办法是调用XPathCompiler.compile()并捕获异常。 我知道你担心例外的成本,但撒克逊没有办法在没有例外的情况下这样做。

请注意,短语"有效语法"需要限定。 compile()方法不仅会检查语法,还会检查其他静态错误,例如对不存在的变量和函数的引用。 您可以通过为解析提供合适的静态上下文来影响此检查。