xml - XQuery 1.0 中是否存在一个函数来检查列表中的值是否存在于另一个列表中?

标签 xml xquery

XQuery 中有两个不同的列表

$list1:
A
B
C
D

$list2
A
D

是否有一个函数可以:创建 $list3,其中 $list2 的所有元素都不存在于 $list1 中?

最佳答案

如果您的值是原子的,您可以利用 = 的存在语义:

let $list1 := ('A', 'B', 'C', 'D')
let $list2 := ('A', 'D', 'E', 'F')
let $list3 := $list2[not(. = $list1)]
return $list3

结果:'E', 'F'

如果您想通过节点标识来比较 XML 节点,可以使用 except改为关键字:

let $nodes := (<A/>, <B/>, <C/>, <D/>, <E/>, <F/>)
let $list1 := ($nodes[1], $nodes[2], $nodes[3], $nodes[4])
let $list2 := ($nodes[1], $nodes[4], $nodes[5], $nodes[6])
let $list3 := $list2 except $list1
return $list3

结果:<E/>, <F/>

关于xml - XQuery 1.0 中是否存在一个函数来检查列表中的值是否存在于另一个列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34987996/

相关文章:

python - 解析多个大型 XML 文件并写入 CSV

android - 问题: TextInputLayout with OutlinedBox bug with hint overlaps

android - 为什么项目上下文菜单没有显示在 ListView 中

java - JAVA 中的 DOM 解析器查询

sql-server - T-SQL XQuery 嵌套命名空间问题

xml - 如何让 kXML 发挥作用?

regex - 在 XSLT/XQuery 正则表达式中,对交替表达式的求值是否有要求的顺序?

xquery - 在 XQuery 中复制 namespace

xquery - 如何检查 XQuery 函数中的空日期参数?

html - 返回多元素 HTML 作为 xquery 结果