在xPath中,如果一个有sequence1 = sequence2,如果sequence1中至少有一个元素也在sequence2中,则返回true。我需要一些允许我测试sequence1中所有元素是否存在于sequence2中的东西(sequence1的值集是sequence2中值集的一个子集)。
这可行吗?
答案 0 :(得分:1)
这应该在XPath 1.0中起作用:
not($sequence1[not(. = $sequence2)])
答案 1 :(得分:1)
not($seq1[not(. = $seq2)])
或者,更高效 - 对于节点序列和基于节点身份的相等语义:(O(N)vs O(N ^ 2)):
count($seq1 | $seq2) = count($seq2)
<强> II。 XPath 2.0
对于一系列节点(基于节点标识的相等语义):
not($seq1 except $seq2)
和值序列的有效表达式:
count(distinct-values(($seq1, $seq2))) eq count(distinct-values($seq2))
答案 2 :(得分:0)
您可以使用every检查每个元素是否在sequence2
中every $x in $sequence1 satisfies $x = $sequence2