【问题标题】:eXist DB & XQuery: xml-root with attribute leads to no resultseXist DB & XQuery:带有属性的 xml-root 导致没有结果
【发布时间】:2012-11-24 16:11:56
【问题描述】:

我对 eXist DB 和 XQuery 都是全新的。我已经安装了 eXist,它工作正常。现在我尝试在作为 eXist Admin 客户端一部分的 eXist 查询对话框中使用 XQuery 查询一些 xml 文件。 xml 文件如下所示(从 Oxford Text Archive 下载):

<TEI xmlns="http://www.tei-c.org/ns/1.0">
    <teiHeader>
    <fileDesc>
    <titleStmt>
    <title>THE Taming of the Shrew.</title>
    <author>Shakespeare, William, 1564-1616</author>
    </titleStmt>
    <publicationStmt>
    <distributor>
...
</TEI>

我的基本 XQuery 如下所示:

doc('/db/myCollection/taming.xml')//teiHeader

这没有结果(“找到 0 个项目”)。为什么?我摆弄了一下,发现如果我从 TEI 元素中删除属性“xmlns”,那么查询就可以完美运行。 如何更改我的查询以便不必删除该属性?是什么导致了这个属性的问题?

感谢任何提示!

【问题讨论】:

    标签: xml xquery exist-db


    【解决方案1】:

    您在该 XML 实例中有一个默认命名空间。试试:

    doc('/db/myCollection/taming.xml')//*:teiHeader
    

    【讨论】:

    • 谢谢!那是有效的;您对命名空间方向的提示使我想到了另一个解决方案:在 XQuery 中声明该命名空间:declare default element namespace "http://www.tei-c.org/ns/1.0"
    猜你喜欢
    • 2021-03-18
    • 2014-08-12
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    相关资源
    最近更新 更多