XQuery / XPath операция «кроме» - выберите часть последовательности, которая не находится в другой последовательности - PullRequest
0 голосов
/ 10 мая 2018

У меня есть довольно простой пример, но я только учусь и не могу найти решение для следующего:

С учетом 2 последовательностей:

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

и другой последовательности

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

Я хочу сделать следующее: сравнить последовательности и вернуть часть последовательностей, которая находится в первой, но не во 2-й последовательности, в данном случае это <emp>100</emp>.

Я думал об операции «кроме», но не могу понять, как заставить ее работать.

Помощь с благодарностью.

1 Ответ

0 голосов
/ 10 мая 2018

Выражение 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>

...