2013-06-08 3 views
8

Hier ist der Teil des HTML (vereinfacht für die Frage) haben:jsoup: Wie die übergeordneten Knoten auswählen, die Kinder eine Bedingung erfüllen

<a href="/auctions?id=4672" class="auction sec"> 
<div class="progress"> 
    <div class="guarantee"> 
    <img src="/img/ico/2.png" /> 
    </div> 
</div> </a> 
<a href="/auctions?id=4670" class="auction"> 
<div class="progress"> 
    <div class="guarantee"> 
    <img src="/img/ico/1.png" /> 
    </div> 
</div> </a> 

Was ich will bekommen, ist der Vektor die IDs enthalten die Auktionen, für die das Bild 2.png angezeigt wird (id = 4672 in diesem Fall). Wie erstellt man die Selector-Abfrage, um diese zu erhalten?

http://jsoup.org/apidocs/org/jsoup/select/Selector.html - Hier kann ich nur finden, wie die Kinder wählen, nicht die Eltern ...

Jede Hilfe, einschließlich der Verwendung von anderen Bibliotheken geschätzt. Ich habe Jsoup ausprobiert, weil es am beliebtesten schien.

Antwort

10

können Sie parent() Methode verwenden:

final String html = "<a href=\"/auctions?id=4672\" class=\"auction sec\"> \n" 
     + " <div class=\"progress\"> \n" 
     + " <div class=\"guarantee\"> \n" 
     + " <img src=\"/img/ico/2.png\" /> \n" 
     + " </div> \n" 
     + " </div> </a>\n" 
     + "<a href=\"/auctions?id=4670\" class=\"auction\"> \n" 
     + " <div class=\"progress\"> \n" 
     + " <div class=\"guarantee\"> \n" 
     + " <img src=\"/img/ico/1.png\" /> \n" 
     + " </div> \n" 
     + " </div> </a>"; 

Document doc = Jsoup.parse(html); 

for(Element element : doc.select("img")) // Select all 'img' tags 
{ 
    Element divGuarantee = element.parent(); // Get parent element of 'img' 
    Element divProgress = divGuarantee.parent(); // Get parent of parent etc. 

    // ... 
} 
Verwandte Themen