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

时间:2018-05-10 19:55:21

标签: xpath xquery

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

给出2个序列,

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

和另一个序列

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

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

我正在考虑&#34;除了&#34; - 操作,但无法弄清楚如何使其正常工作。

非常感谢。

1 个答案:

答案 0 :(得分:4)

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

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

=&GT; <emp>100</emp>