首页 > 解决方案 > XQuery/XPath "except" 操作 - 选择不在其他序列中的部分序列

问题描述

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

给定 2 个序列,即

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

和另一个序列

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

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

我在考虑一个“例外”操作,但不知道如何让它工作。

非常感谢帮助。

标签: xpathxquery

解决方案


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>


推荐阅读