2017-04-09 55 views
1

我有以下HTML結構。每個<div>代表一個州和每一個<a>標籤表示狀態用於選擇所有兄弟的XPath直到一個div

<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 City24 City31 City32 City33 City34

,而我只是想

City21 City22 City23城市24

回答

2

試試下面XPAth表達:

//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")]] 
相關問題