我想过滤以下XQuery的结果:
for $units in $data//*[@id = $ids and (@xref = $a or @xref = $b)]/@id
如何选择匹配 @id 值的元素以及匹配 $ a或$ b的 @xref 属性,但不 $ a和$ b。
$ a和$ b都是具有标记化值的节点集,它们都充当标识符。想要的标识符可以存储在$ a或$ b中。
我的意图是,如果$ a与 @xref 属性匹配,则查询不会检查$ b。
答案 0 :(得分:0)
最好是使用xor。太糟糕了没有xor ......
但是!=和ne也一样:
for $units in $data//*[@id = $ids and ((@xref = $a) ne (@xref = $b))]/@id
对于单个值,使用eq而不是=应该更快:
for $units in $data//*[@id = $ids and ((@xref eq $a) ne (@xref eq $b))]/@id