问题标签 [xqilla]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
496 浏览

xpath - 如何从 HTML 文档 (Xerces/Xqilla) 中提取具有 XPath 2 的节点

我想使用 xerces 和 xqilla 库从带有 XPATH2 的 html 文档中提取特定节点,但显然我无法构造有效的 XPATH 表达式,或者我的代码在某处出错。

我当前的代码:

我必须改变什么?

编辑:

我要查看的 HTML 文件是一大堆文件,因此我制作了一个小示例文件来测试我的程序和/或 XPATH 表达式:

即使这样,我的程序也找不到任何带有我的 XPATH 表达式的节点。



我能够为我的问题找到 2 个次优解决方案

  • 1. 解决方案:
    使用 XPath 表达式,它不关心像 '*:html/*:head/*:title/text()' 这样的命名空间。
  • 2.解决方法:
    在解析器中关闭DOM命名空间:
    config->setParameter(xercesc::XMLUni::fgDOMNamespaces, false);

如果我找到了一种方法来手动为未命名的 DOM 命名空间设置自定义前缀,或者如果我有一个 XPath 表达式,我可以在其中显式指定一个空前缀,但现在至少我可以处理我的文档,我会更高兴。

0 投票
1 回答
1208 浏览

xml-parsing - 具有多个 for 循环的 XQuery FLWOR 表达式返回意外的空标签

这是我的问题的简短版本。

在 FLOWR 表达式中使用嵌套 for 循环时,从内部循环返回变量的行为与预期相同,但从外部循环返回变量意外返回空标记。


这是我的问题的更长版本。

我最近开始学习 XQuery。我一直在 Mac OS X 10.10.4 (Yosemite) 上使用 XQilla 命令行工具来执行我的 XQuery 脚本。特别是我尝试了使用 MacPorts 包管理器安装的 XQilla 版本 2.3.0_2 以及我从源代码手动安装的 XQilla 版本 2.3.2。

在尝试各种 XPath 和 FLWOR 表达式时,我遇到了一个意想不到的行为,我已将其范围缩小到我将在此处介绍的简化示例。该示例由一个 XML 数据文件和两个版本的简单 XQuery 组成;第一个查询按预期工作,但第二个查询没有。

这是我的 XML 数据文件 ( test.xml):

这是我的第一个 XQuery 脚本 ( test_1.xq):

这是我的第二个 XQuery 脚本 ( test_2.xq):

两个查询都包含相同的冗余嵌套 for 循环,但第一个查询从外部(即第一个)for 循环返回变量,第二个查询从内部(即第二个)for 循环返回变量。我预计这两个查询通常具有相似的输出,并且此特定数据文件的输出相同,但情况似乎并非如此。

这是一个示例 shell 会话:

所以从外循环返回变量只会产生空标签;这是出乎意料的。

作为健全性检查,我尝试了第三种变体(test_3.xq):

当我执行第三个查询时,我得到:

我原本希望这个查询能够正常工作,但鉴于test_2.xq我认为这test_3.xq也会失败的意外行为。这只会增加我的困惑。

0 投票
2 回答
526 浏览

xml - 将变量从 bash 传递到 XQuery

我有一个 bash 脚本,它遍历多个目录并解析来自几个 XML 文件的数据。我正在使用 XQilla 来执行我的 XQuery。

这是 XQuery:

例如,如何将 bash 脚本中的变量传递给 XQuery,以便我可以根据 cwd 搜索不同的项目?

0 投票
1 回答
383 浏览

xpath - 为什么 xqilla 找不到命名空间?

这是失败的,我不确定这是xqilla的限制还是错误:

但是,我可以使用它:

在同一个 file.xml 上使用xidel :

在同一个 file.xml 上使用xmlstarlet :

如何让sqilla找到命名空间?

更新:我想补充一下,我如何通过创建另一个文件使其适用于下面的sqilla :

然后通过以下方式调用它:

那么这就是它应该如何为sqilla工作?

0 投票
1 回答
109 浏览

xml - XQuery 最大分段错误

我正在尝试将 XQuery/XPath 与mondial 数据库的 XML 版本一起使用,以查找彼此相距最远的两个城市,仅考虑人口超过 500,000 的城市。为了计算距离,我假设一个墨卡托投影

这是我的代码:

但由于某种原因,我在这一行遇到了分段错误:

xqilla用来运行这样的查询:

任何想法我的代码可能有什么问题?