2016-06-12 3 views
0

Betrachten Sie den folgenden HTML-Code aus einer URL. Ich muss zuerst den Text "Student 1" suchen und die entsprechende Schule auswählen, in diesem Fall "MIT School". Wie mache ich das in JSOUP?Verfolgen eines Geschwisterknotens in JSOUP basierend auf einem Suchtext

<table> 
<tbody> 
<tr> 
    <td valign="top"> 
    <div style="border-width:1px;border-color:#cccccc;border-style:solid;"> 
    <table bordercolor="#483D8B"> 
    <tbody> 
     <tr> 
     <th colspan="2" bgcolor="#483D8B" height="25"><font face="Verdana" size="2" color="white">MIT School</font></th> 
     </tr> 
     <tr> 
     <td width="120" height="15"><font face="Arial" size="2" color="black"> <b>Student 1</b> </font></td> 
     </tr> 
</tbody> 
</table> 

Bisher konnte ich nur eine erfolgreiche Suche nach dem Text durchführen.

System.out.println("This is :"+Jsoup.parse(url, timeout) 
         .select("b:containsOwn(Student 1"); 

Der Ausgang ich erhalte, ist

<b>This is :Student 1</b> 

ich viele Beispiele nicht mehr online JSOUP finden konnten. Irgendwelche Hilfe mit diesem?

+0

Sind Sie sicher, dass dies das korrekte 'HTML' ist? Woher kommt das 'b' -Tag in deinem' select'? – TDG

Antwort

0

Ich denke, dass jeder Schüler eine dedizierte Tabelle hat. Dann könnten Sie folgendes versuchen:

Element sibling = doc.select("b:containsOwn(Student 1)") 
      .first().parent().parent().parent().firstElementSibling(); 
    System.out.println(sibling.select("th").text()); 

Beachten Sie, dass wir in diesem Fall nur das erste Ergebnis berücksichtigen. Sie müssen alle b Elemente, die 'Student 1' enthalten, iterieren, um alle gewünschten Datenpunkte zu erhalten.

Verwandte Themen