问题标签 [xpath-3.0]

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 回答
86 浏览

parsing - XPath 3 注释的词法分析器谓词

我正在尝试在 Antlr 4 中实现 XPath 3 解析器。在 XPath 规范中给出的 EBNF 中,它-用来指示应该排除某些内容,如果我理解正确,那么在 Antlr 中我可以使用谓词来实现相同的行为。

我正在努力CommentContents从 EBNF 实现,因为我不太确定如何构造谓词。这是我到目前为止所拥有的:

有人可以确认我是否有CommentContents正确的谓词,以便它符合 EBNF 的意图吗?

0 投票
1 回答
52 浏览

basex - 在 XPath 3.0 中声明高阶函数时出错:必须声明返回类型?

在@DimitreNovatchev 的文章Programming in XPath 3.0之后,并使用 BaseX GUI 作为测试环境,我尝试了一些定义接受函数作为参数的函数的示例。例如与

(其余代码与此错误无关,但您可以将其视为Function Composition下的第三个示例。)

我从 BaseX 收到此错误:

检测到错误的点位于第二行,就在逗号之前。显然,处理器希望$f参数声明不仅$f应该是一个函数,而且还应该是函数的返回值。

我不知道 BaseX 的期望是否正确。据推测,Dimitre 的示例在他在 Balisage 进行演示之前已经成功测试。也许在那篇文章和 BaseX 发布之间的 XPath 3.0 规范中发生了一些变化?

0 投票
2 回答
1158 浏览

xml - 有什么作用!在 XPath 3.0 中是什么意思?

XPath 3.0 定义了一个新的运算符,称为“映射运算符”。它用感叹号--表示!

是什么A!B意思?我们如何使用!运算符?有人可以给我一个例子吗?

0 投票
1 回答
1511 浏览

xml - 如何执行 XPATH 条件 SUM

我正在尝试使用过滤器构建一个 xpath 总和表达式,该过滤器将为过滤的时间范围和单位提供一些秒数。我认为这相当简单,但似乎无法掌握它。

假设我有一个 XML 文档,例如:

这是我所拥有的:

0 投票
1 回答
1194 浏览

mule - 骡 3.6.1 xpath3

我正在尝试将我的 Mule 3.4 CE 应用程序迁移到 Mule 3.6.1 CE 并且遇到 xpath3 问题。

有效载荷:

xpath 表达式(工作)

xpath3 表达式(不工作)

欣赏任何见解。

0 投票
1 回答
3267 浏览

mule - 属性的 MEL XPath3 表达式

我正在拆分一个 xml 文档,下面是一个示例

我需要提取 id 1165 的值。我正在尝试 MEL XPath3 表达式并出现错误。

我知道#[xpath3('/Row/tags[1]')]有效,但我需要根据属性 id 进行选择。流程片段如下。

任何帮助将不胜感激。

问候, 哈里

0 投票
1 回答
475 浏览

xml - XQuery - 如何使用以下数据创建地图?

我有以下数据:

我希望创建一个 xpath 脚本,以便它生成以下地图:

我怎样才能做到这一点?

0 投票
1 回答
707 浏览

saxon - XSL-T 3.0 中的 XPath 3.1 如何像 java.text.SimpleDateFormat 一样将自由格式的字符串解析为 DateTime?

我想在 XSL-T 3.0 中将几乎自由格式的字符串解析为 DateTime,因为可以使用 java.text.SimpleDateFormat 在 Java 中完成。可能吗?

我正在使用最新的 Saxon HE 9.7.0.1 for Java 并使用 W3C CR 3.1“XPath and XQuery Functions and Operators 3.1”咨询它。W3C CR 3.1 中有函数“fn:parse-ietf-date”,但它看起来不能像“6.1.94 7:29”那样解析字符串 - 例外:

tr.xsl 的第 20 行第 47 行的 xsl:value-of/@select 中的字符 17 处出错:FORG0010:内置模板规则中的无效 IETF 日期值 6.1.94 7:29(缺少日期分隔符)无效的 IETF 日期值6.1.94 7:29(缺少日期分隔符)

我是否在我的 XSL-T 中犯了任何错误,或者“fn:parse-ietf-date”不支持更多格式的字符串被解析为 DateTime?

如果问题不在我这边,是否可以将 fn:parseTime 之类的函数添加到 W3C CR 3.1 作为 Java 8 java.text.SimpleDateFormat 类的“副本”,并支持其所有日期和时间模式?它可以解决 String 到 DateTime 的解析(我希望永远)。它也已经在 J​​ava 中被发明并被广泛使用。我非常感谢在 Saxon-HE 中实现它,尽管我知道,在我的 XSL-T 脚本中在 Saxon-PE 或 Saxon-EE 中调用 java.text.SimpleDateFormat 应该很容易。

问候, 斯捷潘

我的用例:

壳:

在.xml:

tr.xsl:

0 投票
1 回答
156 浏览

xml - Xpath3 - 从 SOAP 消息中获取名称

这是我的SOAP message,我想获取soap:Body的子元素的名称:

我怎样才能得到 的名字<pref:book>

我想在开关中用于比较。

0 投票
2 回答
576 浏览

xslt - 范围内没有命名空间的 XPath 3.0 序列化

在回答这个问题时,我突然想到我知道如何使用 XSLT 3.0 (XPath 3.0)serialize()函数,但我不知道如何避免对范围内的命名空间进行序列化。这是一个最小的例子:

XML 输入

XSLT 3.0 样式表

实际输出

序列化过程包括在元素范围内的命名空间声明cichlid,尽管它没有用于此元素。我想删除这个声明并使输出看起来像

预期产出

我知道如何修改cichlid元素,删除范围内的命名空间,并序列化这个修改后的元素。但这似乎是一个相当麻烦的解决方案。我的问题是:

使用该函数序列化 XML 元素serialize()而不序列化范围内未使用的命名空间声明的规范方法是什么?


在 Oxygen 中使用 Saxon-EE 9.6.0.7 进行测试。