2013-11-28 4 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 и Кеннет А. Росс в но его показы только Кеннет А. Росс

ответ

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

Смежные вопросы