2013-11-28 28 views
1

p.xml查找XQuery与主根相同节点值

<documents> 
    <dblp> 
    <inproceedings> 
     <author>John Cieslewicz</author> 
     <author>Kenneth A. Ross</author> 
     <author>Kenneth A. Ross</author> 
    </inproceedings> 
    </dblp> 
    <dblp> 
    <inproceedings> 
     <author>Yi-Reun Kim</author> 
     <author>Kyu-Young Whang</author> 
     <author>John Cieslewicz</author> 
    </inproceedings> 
    </dblp> 
<documents> 

我的代码是

for $c in doc("C:\Users\User\Desktop\p.xml")//documents/dblp/inproceedings 
where fn:count($c/author) != fn:count(fn:distinct-values($c/author)) 
return $c/author 

我需要约翰Cieslewicz肯内特·A·罗斯在结果但只显示Kenneth A. Ross

回答

1

如果要列出谁出现多次的作者,你需要在全球范围内指望他们在所有作者的列表,而不是在本地诉讼的作者列表:非常

let $docs := doc("C:\Users\User\Desktop\p.xml")/documents, 
    $authors := $docs//author, 
    $distinct-authors := distinct-values($authors) 
for $author in $distinct-authors 
where count($authors[. eq $author]) > 1 
return $author 
+0

@BeniBala谢谢! – Sandy