1

我在 MacOS 上运行一个干净的存在数据库 4.5.0。刚刚安装了“莎士比亚”包进行测试。当我通过浏览器运行以下请求时,我没有得到任何点击。但是he5.xml是一个有效的TEI文件并且包含在body一个text元素中。

http://127.0.0.1:8080/exist/rest/apps/shakespeare/data/he5.xml?_query=//text

<exist:result xmlns:exist="http://exist.sourceforge.net/NS/exist" exist:hits="0" exist:start="1" exist:count="0" exist:compilation-time="0" exist:execution-time="0"/>

在 URL 中使用基本身份验证凭据(用户:admin,密码:EMPTY)不会改变任何内容。 http://admin:@127.0.0.1:8080/exist/rest/apps/shakespeare/data/he5.xml?_query=//text

只有//*XPATH 似乎有效(或被忽略?),因为我正在获取文件的全部内容。其他请求也不起作用(正确)。像//text()xquery 一样:

<exist:result xmlns:exist="http://exist.sourceforge.net/NS/exist" exist:hits="10313" exist:start="1" exist:count="10" exist:compilation-time="1" exist:execution-time="1">
The Life of King Henry the Fifth William Shakespeare Craig A. Berry, Martin Mueller, and Clifford Wulfman
</exist:result>

这只是文字的第一击...

在 Ubuntu 上也用存在数据库 4.4.0 试过这个......同样的“结果”。

4

1 回答 1

0

我认为您在查询中犯了一个错误。您说您尝试过:

http://127.0.0.1:8080/exist/rest/apps/shakespeare/data/he5.xml?_query=//text

该查询尝试查找所有名为text. 我认为您可能只想获取所有文本节点,因此您需要:

http://127.0.0.1:8080/exist/rest/apps/shakespeare/data/he5.xml?_query=//text()

注意额外的().

另外我认为您的 URL 路径看起来也很可疑,如果您尝试使用 REST API,那么您应该使用完整的数据库收集路径,即:

    http://127.0.0.1:8080/exist/rest/db/apps/shakespeare/data/he5.xml?_query=//text()

注意额外的/db.

于 2019-11-23T13:22:40.390 回答