$ a是
(<pet name="a1">
<age num="1"/>
</pet>,
<pet name="a2">
<age num="2"/>
</pet>)
$ b是
(<pet name="a2">
<age num="9"/>
</pet>,
<pet name="a3">
<age num="11"/>
</pet>
<pet name="a3">
<age num="14"/>
</pet>
)
我正在尝试将以下内容作为输出($ a中的所有内容以及$ b中的所有内容除了已打印出来的内容),即
(<pet name="a1">
<age num="1"/>
</pet>,
<pet name="a2">
<age num="2"/>
</pet>,
<pet name="a3">
<age num="11"/>
<age num="14"/>
</pet>)
由于已从$ a打印<pet name="a2">
,因此必须跳过$ b中具有相同属性的相同元素,
我在xquery中尝试了以下代码,但我无法获得所需的结果。
for $l in $a
for $m in $b
return if ($m/@name!=$l/@name)
答案 0 :(得分:1)
通过连接序列并使用谓词表达式过滤第二个序列,可以更简单地解决这个问题而无需循环:
($a | $b[not(@name = $a/@name)])