基于搜索文本遍历JSOUP中的兄弟节点

时间:2016-06-12 05:11:59

标签: java jsoup

从URL中考虑以下HTML。我需要先对文本进行搜索"学生1"并挑选相应的学校,在这种情况下是麻省理工学院的#39;。我如何在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");

我得到的输出是

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

我在网上找不到很多JSOUP的例子。对这个有任何帮助吗?

1 个答案:

答案 0 :(得分:0)

我认为每个学生都有专门的桌子。然后,您可以尝试以下方法:

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

请注意,在这种情况下,我们只考虑第一个结果。你必须迭代所有包含&#39;学生1&#39;为了获取你想要的所有数据点。