2017-04-09 3 views
1

Ich habe die folgende HTML-Struktur. Jeder <div> stellt einen Zustand dar, und jeder <a> Tag repräsentiert eine Stadt in diesem ZustandXPath für die Auswahl aller Geschwister bis ein 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> 

Ich brauche alle ein-Tags zu extrahieren, die zu einem bestimmten Staat gehören.
Ich versuchte dies:

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

Aber es hat mich

City21 City22 City23 City24 City31 City32 City33 City34

während ich City21 nur

City22 City23 gesucht City24

Antwort

2

Versuchen unter XPAth Ausdruck:

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

oder

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

Bullseye! Danke, Mann! – morea030

1

Sie können Tags auswählen a so dass die erste div vor der Staatsabkürzung enthält:

//a[preceding::div[1][contains(text(), "CA")]] 
Verwandte Themen