使用 BaseX 查询 XML 文件

2024-01-30

我正在使用 BaseX 本机 XML 数据库来查询 XML 文件。 我正在使用 BaseX 文档中提供的 BaseXClient.java 文件。我正在启动 Basex 服务器并使用 BaseXClient.java 连接到服务器。

// create session
final BaseXClient session = new BaseXClient("localhost", 1984, "admin", "admin");

String query = "doc('xmlfiles/juicers.xml')//image";
// version 1: perform command and print returned string
System.out.println(session.execute(query));

现在,juicers.xml 文件已xmlns信息。

<?xml version="1.0"?>
<juicers
xmlns="http://www.juicers.org"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.juicers.org 
                    juicers.xsd">

<juicer>
    <name>OJ Home Juicer</name>
    <image>images\mighty_oj.gif</image>
    <description>There&apos;s just no substitute for a properly squeezed
        orange in the morning. So delicate and refreshing. The finest hotels
        use mechanical juicers of this type for their most discriminating
        guests. This is the largest selling juicer of its kind. It&apos;s a
        beautiful little all-metal piece in baked enamel and polished chrome;
        it even won the Frankfurt Fair Award for its design. Uses no
        electricity and produces no non-recyclable waste as do frozen juices.
    </description>
    <warranty>lifetime warranty</warranty>
    <cost>41.95</cost>
    <retailer>http://www.thewhitewhale.com/oj.htm</retailer>
</juicer>
</juicers>

如果我不给xmlns在 XML 实例文件 (juicers.xml) 中,它返回正确的结果。 但如果xmlns包含在 XML 实例文件中,则抛出以下异常。

java.io.IOException: Stopped at line 1, column 3:
Expecting command.
at org.basex.api.BaseXClient.execute(BaseXClient.java:73)
at org.basex.api.BaseXClient.execute(BaseXClient.java:84)
at org.basex.api.Example.main(Example.java:31)

如何查询 XML 实例文件xmlns?有出路吗?还有其他办法可以跑吗xquery来自爪哇?


除了 Chrstian 的答案之外,您还必须声明一个默认元素名称空间,或者在每次寻址元素时使用该名称空间(如果您的文档中有多个名称空间,您可能需要这样做)。

默认元素命名空间使您能够像上面那样编写查询:

declare default element namespace "http://www.juicers.org";
doc('xmlfiles/juicers.xml')//image

如果您不想使用榨汁机作为默认元素命名空间,请将其声明为命名空间并在元素级别引用它:

declare namespace juicers="http://www.juicers.org";
doc('xmlfiles/juicers.xml')//juicers:image

您可以设置命名空间标识符juicers任意地。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 BaseX 查询 XML 文件 的相关文章

随机推荐

  • 在 angular2 的一个组件中添加多个 templateUrl

    angular2 允许使用反引号 编写多行 html 代码 但是当使用 templateUrl 时 我不知道如何添加多个 html 文件 当我尝试这个时 Component selector my app template h1 view1
  • 将内部带有字节数组的结构传递给互操作方法

    我遇到一种情况 必须将结构传递给 C 方法 在我的 C 文件中声明为 extern 然而这个结构相当复杂 我已经成功地使用了 AllocHGlobal 的方法 但我想了解是否可以通过仅传递对结构的引用来使其以这种方式工作 StructLay
  • Android - 创建适配器时出现 NullPointerException

    我正在为列表视图创建一个数组适配器 一切正常 我有 2 个片段 操作栏顶部有 2 个按钮 可在这 2 个片段之间进行更改 我的问题是 如果我在这些frag之间移动得太快 当我打开fragOne 切换到fragTwo 然后快速移回fragOn
  • LinearLayout 留下太多空白。为什么?

    我正在编写一个 Android 应用程序 帮助小孩子学习数学 它向用户提出一些问题 用户会回答这些问题 如果他 她全部答对 将获得奖品 现在我需要在中告诉用户这一点ResultsActivity 它是这样的
  • Windows 窗体:播放声音,但不是从头开始

    我想在我的设备中播放曲目 wav 文件 Windows Forms Application 但我不希望它从头开始播放 而是从曲目中的某个点开始播放 假设 10 秒 从头开始播放曲目没有问题 private void playSimpleSo
  • OpenCV 错误:Python 中的未知错误代码 -49

    我正在尝试使用 cv2 在 python 3 6 中学习人脸检测 我按照书上给出的src进行操作 我已经安装了opencv python 3 2 0 by pip xml 和 jpg 文件都与 python 代码位于同一路径中 from n
  • 拉拉维尔。如果数据库正在播种,则禁用观察者方法

    我的用户模型有一个观察者 在我的观察者 gt 创建的事件中我有一些代码 public function created User user sendEmail 因此 我们的想法是 当创建用户时 系统将向用户发送帐户已创建的电子邮件通知 问题
  • 如何使用 mvn site:site 生成站点?

    我想用mvn生成一个站点 但是我无法配置它来生成index html 我可以运行不同的报告 例如 mvn javadoc javadoc generates target site apidocs mvn cobertura cobertu
  • 如何处理 UI 的 Lambda/API 网关的 Cognito 身份验证重定向?

    当我进入 Cognito 身份验证页面时 https example auth us east 1 amazoncognito com login response type token client id xxxxxxxxxxxxxxxx
  • Mongodb:$in 运算符与大量单个查询

    我知道 MongoDB 能够每秒处理大量请求 但假设我必须根据给定的 id 查询集合的大量文档 什么听起来更好 在 id 属性上使用我想要获取的所有 id 创建 in 或者循环 findOne 查询 我肯定会使用 in 查询并提供 ids
  • 如何从 SqlAlchemy 创建和恢复备份?

    我正在编写一个 Pylons 应用程序 并尝试创建一个简单的备份系统 其中每个表都被序列化并压缩成一个文件 供管理员下载 并在发生不良情况时用于恢复应用程序 我可以使用以下命令很好地序列化我的表数据SqlAlchemy 序列化器 https
  • 如何通过 JavaScript/JQuery 将 HTML 文档添加到
    中?

    如何将 HTML 文档添加到 div div 通过 JavaScript JQuery 这就是我到目前为止所拥有的 emailBodyIninclude html
  • Azure Functions - 事件中心不触发函数

    我有一个 Azure 基础架构 2 个 HTTP 函数 gt 事件中心 gt 2 个函数 gt 表存储 因此两个 http 函数将消息发送到事件中心 以及两个由事件中心中的消息触发的函数 其中之一将消息保存在表存储中 基础结构每天由 Azu
  • 如何寻址 OData Url 中使用复合身份密钥的实体?

    我有一个实体订单项具有OrderId and 产品编号整数字段 这两个字段构成身份密钥 主密钥对于这张表 我想用OData Web API通过服务公开此类实体并能够选择订单项目他们的实例复合ID 的格式应该是什么URL 是否有处理此类场景的
  • Spark重新分区落入单个分区

    我正在学习spark 当我使用以下表达式在pyspark shell中测试repartition 函数时 我观察到一个非常奇怪的结果 之后所有元素都落入同一个分区repartition 功能 在这里 我用了glom 了解 rdd 内的分区
  • x86 保护模式下段寄存器的用途是什么?

    我需要修改一些dll 但我不知道段寄存器到底是做什么的 DS SS 处于保护模式 我在学校学到了真正的 16 位模式 其中段寄存器乘以 16 加上普通寄存器中的偏移量给出了物理内存中的有效地址 在保护模式下 有一些平面内存模型和虚拟内存 其
  • 如何在cheerio中获取div的childNodes?

    我想使用cheerio 获取div 的第一个childNode 我使用 javascript dom 操作来获取它 但无法在cheerio 上获取它 我已经在开发工具中尝试过并得到了预期的结果 但我想通过使用cheerio来实现 javas
  • 尽管使用“-webkit-user-select: none”,Chrome 仍会复制文本

    我想在表中创建一个不可复制的元素 因为可读性更好 在 Firefox 中它工作正常 如果您选择所有内容并复制它 则不会复制特定的文本元素 遗憾的是在 Chrome 中这不起作用 事实上 浏览器不会选择文本 而是复制它 td Test2 td
  • 如何在Android中的日期选择器中设置特定日期

    我尝试了很多 但一切都不起作用 我需要我的日期选择器 日期从 2014 年 9 月 1 日开始 但它从 1900 年开始 我设置了最小日期概念 它会消失所有过去的日期 请大家帮忙 public void onCreate Bundle sa
  • 使用 BaseX 查询 XML 文件

    我正在使用 BaseX 本机 XML 数据库来查询 XML 文件 我正在使用 BaseX 文档中提供的 BaseXClient java 文件 我正在启动 Basex 服务器并使用 BaseXClient java 连接到服务器 creat