2016-06-12 8 views
0

URLから以下のHTMLを検討してください。最初に「学生1」のテキストを検索し、この場合は「MITスクール」である対応する学校を選ぶ必要があります。 JSOUPでこれをどうやって行うのですか?検索テキストに基づいてJSOUP内の兄弟ノードを移動する

<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> 

これまでのところ、私はテキストの検索を成功させることしかできませんでした。

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

私が手出力は、私がJSOUPのためのオンラインの多くの例を見つけることができませんでした

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

です。この1つのヘルプ?

+0

これは正しい「HTML」ですか。あなたの 'select'の' b'タグはどこから来ますか? – TDG

答えて

0

私は各生徒に専用のテーブルがあると考えます。次に、以下を試すことができます:

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

この場合、最初の結果のみを考慮します。必要なすべてのデータポイントを取得するには、 'Student 1'を含むすべてのb要素を反復処理する必要があります。

関連する問題