我想知道如何获取/创建存储在exists-db中的文件的URL。 如果eXist-db在我的localhost上运行,我可以获得一个类似于这个链接的文件: http://localhost:8080/exist/rest/db/junitReports/Report1.xml
但是如果它存在,我怎么能这样做-db在远程主机上? 我可以在xQuery中硬编码主机的IP地址,但我不想这样做。 是否有一个函数可以在xquery中返回远程主机名或ip地址?
谢谢。
答案 0 :(得分:1)
试试这个功能 请求:GET-服务器名称()
还有一些其他可能有用的功能 - 从您的仪表板浏览XQuery Function Documentation应用程序中的Request模块。
答案 1 :(得分:1)
我可以使用以下表达式构建一个可以与curl
一起使用的网址:
concat(request:get-scheme(), "://", request:get-server-name(), ":",
request:get-server-port(), request:get-context-path(),
request:get-servlet-path(), document-uri(root($m)))
$m
是某个文档中的节点。
以下是完整查询的示例:
xquery version "3.0";
declare namespace config='http://exist-db.org/collection-config/1.0';
for $m in //config:collection
return concat(request:get-scheme(), "://", request:get-server-name(),
":", request:get-server-port(), request:get-context-path(),
request:get-servlet-path(), document-uri(root($m)))
在普通的eXist数据库中,上述查询将为数据库中存在的每个.xconf
文件生成一个URL。 (默认的eXist安装有很多。)以下是我从中获得的URL示例:
http://localhost:8080/exist/rest/db/system/config/db/collection.xconf
我可以直接在该网址上使用curl
来获取文档。或者我可以在浏览器中填写它。