2017-04-09 21 views
1

次のHTML構造を持っています。各<div>は状態を表し、各<a>タグはその状態私が特定の状態に属しているすべてのタグを抽出する必要がありdivまでのすべての兄弟を選択するXPath

<div class="country">AL</div> 
<a href=somelink>City1</a> 
<a href=somelink>City2</a> 
<a href=somelink>City3</a> 
<a href=somelink>City4</a> 
<a href=somelink>City5</a> 
<div class="country">CA</div> 
<a href=somelink>City21</a> 
<a href=somelink>City22</a> 
<a href=somelink>City23</a> 
<a href=somelink>City24</a> 
<div class="country">IL</div> 
<a href=somelink>City31</a> 
<a href=somelink>City32</a> 
<a href=somelink>City33</a> 
<a href=somelink>City34</a> 

内の都市を表します。
私はこの試みた:

//*[contains(text(), "CA")]/following-sibling::a[preceding::div] 

をしかし、私は唯一の

City21 City22 City23を望んでいる間、それはCity34

City21 City22 City23 City24 City31 City32 City33を得ましたCity24

表現下記

答えて

2

試してみてください。

//a[count(following-sibling::div)=count(//div[text()="AL"]/following-sibling::div)-1] 

または

//a[preceding-sibling::div[2][text()="AL"]] 
+0

ブルズアイを!ありがとう! – morea030

1

あなたはaように最初divというタグを選択することができます前の状態の略語含まれています

//a[preceding::div[1][contains(text(), "CA")]] 
関連する問題