1

我试图编写 Java 代码以在本地模式下使用 BaseX 来查询通过访问 Web 服务返回的 XML。

我不确定传递 XML 的不同方式。我是不是该

  1. 将外部变量与 XML 数据绑定并传递给 XQuery,然后使用fn:parse(),
  2. 使用fetch模块,
  3. 或者还有其他更好的方法吗?

是否有任何其他具有类似功能和内置模块的 XQuery 3.0 处理器?

4

1 回答 1

2

解决方案 1:绑定外部变量

这意味着您首先必须将 XML 数据存储为 java 变量,然后将其传递给 BaseX。你当然可以这样做,它看起来像这样:

declare variable $t as xs:string external;
parse-xml($t)

解决方案 2:使用 fetch()

fetch:text()并且fetch:binary()是可流式传输的,但parse-xml会实现字符串(请注意,该函数的调用parse-xml()方式parse()与您的问题中所述不同。

parse-xml(fetch:text("YOUR-URI"))

解决方案 3:直接在 XQuery 中获取数据

您还可以使用 http 模块从 Web 服务中简单地检索数据:

http:send-request(<http:request method='get'></http:request>, "YOUR-URI")[2]

解决方案 3 在我看来是最简单的方法,如果您在 Java 代码中不再需要此结果。否则,您可能要坚持解决方案 1。

于 2014-02-20T13:06:39.050 回答