问题标签 [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.
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 表达式,我可以在其中显式指定一个空前缀,但现在至少我可以处理我的文档,我会更高兴。
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
也会失败的意外行为。这只会增加我的困惑。
xml - 将变量从 bash 传递到 XQuery
我有一个 bash 脚本,它遍历多个目录并解析来自几个 XML 文件的数据。我正在使用 XQilla 来执行我的 XQuery。
这是 XQuery:
例如,如何将 bash 脚本中的变量传递给 XQuery,以便我可以根据 cwd 搜索不同的项目?
xpath - 为什么 xqilla 找不到命名空间?
这是失败的,我不确定这是xqilla的限制还是错误:
但是,我可以使用它:
在同一个 file.xml 上使用xidel :
在同一个 file.xml 上使用xmlstarlet :
如何让sqilla找到命名空间?
更新:我想补充一下,我如何通过创建另一个文件使其适用于下面的sqilla :
然后通过以下方式调用它:
那么这就是它应该如何为sqilla工作?
xml - XQuery 最大分段错误
我正在尝试将 XQuery/XPath 与mondial 数据库的 XML 版本一起使用,以查找彼此相距最远的两个城市,仅考虑人口超过 500,000 的城市。为了计算距离,我假设一个墨卡托投影。
这是我的代码:
但由于某种原因,我在这一行遇到了分段错误:
我xqilla
用来运行这样的查询:
任何想法我的代码可能有什么问题?