如何在 Saxon 中使用 XPath 3.1?
How to use XPath 3.1 in Saxon?
我目前使用的是 XPath 3.1 语法,但出于某种原因 Saxon 输出错误:
To use XPath 3.1 syntax, you must configure the XPath parser to handle it
。
我该怎么做?
非常感谢!!!
如果您使用的是 s9api API,请使用 XPathCompiler.setLanguageVersion("3.1")
。
如果您使用的是 JAXP,那可能不是个好主意,因为 JAXP XPath API 无法处理 XPath 3.1 数据类型的丰富性;但如果必须,请将 XPath 对象转换为 net.sf.saxon.xpath.XPathEvaluator;然后调用 getStaticContext().setXPathLanguageLevel().
在 Saxon 9.7 中,默认支持的 XPath 语言级别是 3.0,因为这是已达到推荐状态的最新 W3C 规范。
更新
在 Saxon 9.8 中,XPath 3.1 是默认值。
对于 XSLT 和 Saxon-HE 9.7.0.3J,它通过使用 -xsltversion:3.0
命令行选项或文档元素的 version="3.0"
属性来工作。
我目前使用的是 XPath 3.1 语法,但出于某种原因 Saxon 输出错误:
To use XPath 3.1 syntax, you must configure the XPath parser to handle it
。
我该怎么做?
非常感谢!!!
如果您使用的是 s9api API,请使用 XPathCompiler.setLanguageVersion("3.1")
。
如果您使用的是 JAXP,那可能不是个好主意,因为 JAXP XPath API 无法处理 XPath 3.1 数据类型的丰富性;但如果必须,请将 XPath 对象转换为 net.sf.saxon.xpath.XPathEvaluator;然后调用 getStaticContext().setXPathLanguageLevel().
在 Saxon 9.7 中,默认支持的 XPath 语言级别是 3.0,因为这是已达到推荐状态的最新 W3C 规范。
更新
在 Saxon 9.8 中,XPath 3.1 是默认值。
对于 XSLT 和 Saxon-HE 9.7.0.3J,它通过使用 -xsltversion:3.0
命令行选项或文档元素的 version="3.0"
属性来工作。