2014-11-07 4 views
0

Со следующим xml, как coud я получаю список директоров, в которых два директора имеют одно и то же LastName в одном фильме?Как найти одинаковые элементы с xpath

<MoviesLib> 
 
    <Movie Title="Batman" Year="2013"> 
 
    <Directors> 
 
     <Director> 
 
     <Name>Robert</Name> 
 
     <LastName>Zemeckis</LastName> 
 
     </Director> 
 
    </Directors> 
 
    </Movie> 
 
    <Movie Title="Gru" Year="2012"> 
 
    <Directors> 
 
     <Director> 
 
     <Name>john</Name> 
 
     <LastName>tailer</LastName> 
 
     </Director> 
 
     <Director> 
 
     <Name>Emma</Name> 
 
     <LastName>Smith</LastName> 
 
     </Director> 
 
     <Director> 
 
     <Name>Lana</Name> 
 
     <LastName>Smith</LastName> 
 
     </Director> 
 
    </Directors> 
 
    </Movie> 
 
</MoviesLib>

, например, в этом случае будет: Эмма Смит, Лана Смит

благодаря

ответ

0

Следующее выражение XPath 2.0 должно работать:

for $d in //Director 
    return $d[../Director[not(. is $d) and LastName = $d/LastName]] 

Я не могу придумать один XPa th 1.0, поскольку он не поддерживает выражения for (см. вопрос How to get the context of outer predicate? для некоторого фона).

+0

Мужчина, я люблю тебя, ты спас меня :) действительно очень спасибо! Мне понадобится ваша помощь в будущем – srdeveloper

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