2016-04-18 13 views
0

Ive получил этот XML:XML получить элемент с XPath

<root> 
    <provision> 
     <Stage StageNumber="1"/> 
     <Stage StageNumber="2"/> 
    </provision> 
    <provision> 
     <Stage StageNumber="1"/> 
     <Stage StageNumber="2"/> 
    </provision> 
    <provision> 
     <Stage StageNumber="1"/> 
     <Stage StageNumber="3"/> 
    </provision> 
    <Stage StageNumber="1"/> 
    <Stage StageNumber="2"/> 
    <Stage StageNumber="3"/> 
</root> 

и мне нужно выбрать атрибут StageNumber, который имеет единственный provision на нем; Под одним я имею в виду, что у меня есть 3 этапа, и каждый stage получил в нем provision, но данные хранятся по-разному. В этом случае ответ 3.

+1

Можете ли вы объяснить «_that имеет одно« обеспечение »на нем_»? Непонятно, почему ответ должен быть «3». Я не вижу разницы между любыми элементами 'обеспечения'. –

ответ

1

Звук, как вам нравится, чтобы найти сцену с уникальным StageNumber. Попробуйте это;

.//Stage[ not(
     ../preceding-sibling::provision/Stage/@StageNumber = @StageNumber or 
     ../following-sibling::provision/Stage/@StageNumber = @StageNumber)]" 
+0

Thx alot! оно работает –