首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >eXist-db中的XML文档中的命名空间返回空API调用。

eXist-db中的XML文档中的命名空间返回空API调用。
EN

Stack Overflow用户
提问于 2019-06-19 13:36:28
回答 1查看 174关注 0票数 0

我有一个eXist-db,它包含一个XML文档集合。所有文档的顶部节点中都有一个名称空间,如下所示

代码语言:javascript
复制
<TEI xmlns="http://www.tei-c.org/ns/1.0" version="5.0" xml:id="No-MM_N0001-01">

当我试图从REST查询//div/p中的信息时,会得到一个空的响应:

代码语言:javascript
复制
Request:
/data?_query=%2F%2Fdiv%2Fp

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

但是,当我编辑其中一个文档,删除xmlns时,我从我编辑的文档中获取数据。

代码语言:javascript
复制
Request:
/data?_query=%2F%2Fdiv%2Fp

Response:
<exist:result xmlns:exist="http://exist.sourceforge.net/NS/exist" exist:hits="2" exist:start="1" exist:count="2" exist:compilation-time="1" exist:execution-time="1">
<p>
Jeg fik ikke sove –
<del rend="overstrike">j</del>
så den
<lb/>
lille striben mellem ridauerne lysne
<lb/>
mere og mere –
<del rend="overwritten">v</del>
jeg vendte mig hed
<lb/>
i sengen – Det var
<del rend="overstrike">jo</del>
så tydeli –

因此,问题是,如何在不编辑所有XML文档的情况下查询集合中的XML文档?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-19 19:18:58

你有很多选择。从我的头顶上跳几下:

  1. 您可以发送XPath //*:div/*:p,这基本上使用通配符前缀,意思是“任意名称空间”。
  2. 不使用HTTP与_query,您可以HTTP到REST,这将允许您在您的XQuery中声明名称空间绑定,并使用适当的XPath。 声明命名空间tei = "http://www.tei-c.org/ns/1.0";//tei:div/tei:p
  3. 类似于(2),但是可以将XQuery预存储在数据库中作为文件,然后通过REST上的HTTP调用文件,这将导致执行XQuery。

其他选择也是可能的..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56669014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档