使用 saxon & XPath 3.1 解析 JSON 个文件
Using saxon & XPath 3.1 to parse JSON files
这是针对从 Java 应用程序调用 Saxon 的情况。我知道 Saxon 可以使用 XPath 3.1 对 JSON 文件进行 运行 查询。关于这个的几个问题:
- 哪里有如何执行此操作的示例?我已经完成搜索并找到了很多关于这样做细节的答案,但注意到如何读入文件和执行查询。和XML一样吗?
- 是否可以为 JSON 提供架构文件以便正确键入返回值?如果是,怎么做?
- XQuery 是否也能够对 JSON 执行查询?
- 哪个版本的 Saxon 支持这个? (我们正在使用9.9.1.1,想知道是否需要升级。)
从技术上讲,您不会 运行 查询 JSON 个文件;你 运行 他们反对解析 JSON 文件所产生的数据结构,该文件是映射和数组的结构。您可以使用 parse-json() 或 json-doc() 函数解析 JSON 文件,然后使用适用于映射和数组的运算符查询结果。其中一些(以及它们的使用示例)显示在
的规范中
https://www.w3.org/TR/xpath-31/#id-maps-and-arrays
谷歌搜索 "query maps arrays JSON XPath 3.1" 发现很多有用的 material。或者获取 Priscilla Walmsley 的书:http://www.datypic.com/books/xquery/chapter24.html
数据类型:JSON固有的字符串、数字和布尔数据类型会根据其形式自动识别。无法使用模式进行进一步的输入。
XQuery 是 XPath 的超集,但就 JSON/Maps/Arrays 而言,我认为 XPath 中的功能与 XQuery 中的功能完全相同。
Saxon 在每个后续版本中都增加了一些额外的一致性和性能。 9.9 的覆盖面相当完整; 10.0 添加了一些优化(比如一个新的映射内部数据结构,它的键都是字符串,比如你在解析 JSON 时得到的)。 http://www.saxonica.com/documentation/index.html#!changes
中详细描述了后续 Saxon 版本的更改细节
这是针对从 Java 应用程序调用 Saxon 的情况。我知道 Saxon 可以使用 XPath 3.1 对 JSON 文件进行 运行 查询。关于这个的几个问题:
- 哪里有如何执行此操作的示例?我已经完成搜索并找到了很多关于这样做细节的答案,但注意到如何读入文件和执行查询。和XML一样吗?
- 是否可以为 JSON 提供架构文件以便正确键入返回值?如果是,怎么做?
- XQuery 是否也能够对 JSON 执行查询?
- 哪个版本的 Saxon 支持这个? (我们正在使用9.9.1.1,想知道是否需要升级。)
从技术上讲,您不会 运行 查询 JSON 个文件;你 运行 他们反对解析 JSON 文件所产生的数据结构,该文件是映射和数组的结构。您可以使用 parse-json() 或 json-doc() 函数解析 JSON 文件,然后使用适用于映射和数组的运算符查询结果。其中一些(以及它们的使用示例)显示在
的规范中https://www.w3.org/TR/xpath-31/#id-maps-and-arrays
谷歌搜索 "query maps arrays JSON XPath 3.1" 发现很多有用的 material。或者获取 Priscilla Walmsley 的书:http://www.datypic.com/books/xquery/chapter24.html
数据类型:JSON固有的字符串、数字和布尔数据类型会根据其形式自动识别。无法使用模式进行进一步的输入。
XQuery 是 XPath 的超集,但就 JSON/Maps/Arrays 而言,我认为 XPath 中的功能与 XQuery 中的功能完全相同。
Saxon 在每个后续版本中都增加了一些额外的一致性和性能。 9.9 的覆盖面相当完整; 10.0 添加了一些优化(比如一个新的映射内部数据结构,它的键都是字符串,比如你在解析 JSON 时得到的)。 http://www.saxonica.com/documentation/index.html#!changes
中详细描述了后续 Saxon 版本的更改细节