我试图编写 Java 代码以在本地模式下使用 BaseX 来查询通过访问 Web 服务返回的 XML。
我不确定传递 XML 的不同方式。我是不是该
- 将外部变量与 XML 数据绑定并传递给 XQuery,然后使用
fn:parse()
, - 使用
fetch
模块, - 或者还有其他更好的方法吗?
是否有任何其他具有类似功能和内置模块的 XQuery 3.0 处理器?
这意味着您首先必须将 XML 数据存储为 java 变量,然后将其传递给 BaseX。你当然可以这样做,它看起来像这样:
declare variable $t as xs:string external;
parse-xml($t)
fetch:text()
并且fetch:binary()
是可流式传输的,但parse-xml
会实现字符串(请注意,该函数的调用parse-xml()
方式parse()
与您的问题中所述不同。
parse-xml(fetch:text("YOUR-URI"))
您还可以使用 http 模块从 Web 服务中简单地检索数据:
http:send-request(<http:request method='get'></http:request>, "YOUR-URI")[2]
解决方案 3 在我看来是最简单的方法,如果您在 Java 代码中不再需要此结果。否则,您可能要坚持解决方案 1。