在XML
档案中:
<article>
<title>This is book AAAA</title>
<author>A</author>
<author>B</author>
</article>
<article>
<title>This is book BBB</title>
<author>A</author>
<author>C</author>
</article>
如果他/她出现在多个<article>
中,我需要使用XQuery输出作者姓名。在这种情况下,应输出作者A.请注意,一篇文章可以有多位作者。
我应该如何编写XQuery?
答案 0 :(得分:1)
执行此操作的典型方法是迭代要查找的实体的不同值,然后使用where
将查询过滤到约束中:
let $authors := $data//article/author
for $author in distinct-values($authors)
where (count($authors[. = $author]) gt 1)
return $author
但是,对于大量数据distinct-values()
可能效果不佳,可能需要获取唯一值的特定于实现的方法(例如:使用索引)。