xpath - XQuery/XPath "except"操作 - 选择不在其他序列中的序列部分

标签 xpath xquery

我有一个非常简单的例子,但我只是在学习,找不到以下解决方案:

给定 2 个序列,是

<emp>10</emp>
<emp>42</emp>
<emp>100</emp>

和另一个序列
  <emp>10</emp>
  <emp>42</emp>

我想要做的是:比较序列并返回在第一个序列中但不在第二个序列中的序列部分,即 <emp>100</emp>在这种情况下。

我正在考虑“除外”操作,但无法弄清楚如何使其工作。

非常感谢帮助。

最佳答案

except表达式对节点标识进行操作,而不是节点值。我认为您想要的是对您的序列进行值比较。例如:

let $seq1 := 
  (<emp>10</emp>,
  <emp>42</emp>,
  <emp>100</emp>)
let $seq2 :=
  (<emp>10</emp>,
  <emp>42</emp>)
return $seq1[not(. = $seq2)]

=><emp>100</emp>

关于xpath - XQuery/XPath "except"操作 - 选择不在其他序列中的序列部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50280595/

相关文章:

java - 带有 XPath 的基于 Camel 内容的路由器无法正常工作

xml - 如何对路径范围索引元素进行排序?

sql-server - 如何从 SQL Server 中的 XML 元素获取特定属性

java - Xquery:使用Java返回多个数据元素?

ruby - 使用Nokogiri找不到任何节点

xml - 对不止第一个元素使用 Becker 的 XPath 方法?

Java Android xPath html 解析

java - Xpaths查询问题

xml - 用 xquery 替换元素的值

xquery - 如何检查xml中的属性可用性?