确定 XPath 查询是否有效
Determine if an XPath query is valid
Saxon 或其他库中是否有一种方法可以告诉我 XPath 查询是否是有效语法。如果它会 return 不是,如果节点存在于 XML 文件中,而是如果它是有效的语法。
我需要用它来确定查询是 XPath 还是我们自己处理的方程式。
谢谢 - 戴夫
最好的办法是调用 XPathCompiler.compile() 并捕获异常。我知道您担心例外的代价,但在 Saxon 中没有办法做到这一点而没有例外。
请注意,短语 "valid syntax" 需要限定。 compile() 方法不仅会检查语法,还会检查其他静态错误,例如对不存在的变量和函数的引用。您可以通过为解析提供合适的静态上下文来影响此检查。
Saxon 或其他库中是否有一种方法可以告诉我 XPath 查询是否是有效语法。如果它会 return 不是,如果节点存在于 XML 文件中,而是如果它是有效的语法。
我需要用它来确定查询是 XPath 还是我们自己处理的方程式。
谢谢 - 戴夫
最好的办法是调用 XPathCompiler.compile() 并捕获异常。我知道您担心例外的代价,但在 Saxon 中没有办法做到这一点而没有例外。
请注意,短语 "valid syntax" 需要限定。 compile() 方法不仅会检查语法,还会检查其他静态错误,例如对不存在的变量和函数的引用。您可以通过为解析提供合适的静态上下文来影响此检查。