Jsoup从html表中提取数据

时间:2011-07-08 05:23:06

标签: java php android html-table jsoup

我今天开始使用JSoup用于Android应用程序,所以我有这个表,我需要从中提取数据,但从它看起来,它将是艰难的。需要一些帮助;该表的html如下:

<TR BGCOLOR='#999999'>
      <TD ALIGN='left'><span class='S09W80'><font color=#DDDDDD>CODE</span></TD>
      <TD ALIGN='left'><span class='S09W80'><font color=#DDDDDD>SUBJECT NAME</span></TD>
      <TD ALIGN='right'><span class='S09W80'><font color=#DDDDDD>PERIOD FROM</span></TD>
      <TD ALIGN='right'><span class='S09W80'><font color=#DDDDDD>PERIOD TO</span></TD>
      <TD ALIGN='right'><span class='S09W80'><font color=#DDDDDD>ENROL DATE</span></TD>
      <TD ALIGN='right'><span class='S09W80'><font color=#DDDDDD>GRADE</span></TD>                
</TR>

然后重复

<TR BGCOLOR='#FFFFFF'>
  <TD ALIGN='left'><span class='S09W50'>IT142</span></TD>
  <TD ALIGN='left'><span class='S09W50'>INTRODUCTION TO GRAPHICS DEVELOPMENT</span></TD>
  <TD ALIGN='right'><span class='S09W50'>21-FEB-11</span></TD>
  <TD ALIGN='right'><span class='S09W50'>17-JUN-11</span></TD>
  <TD ALIGN='right'><span class='S09W50'>22-FEB-11</span></TD>
  <TD ALIGN='center'><span class='S09W80'>B-</span></TD>
</TR>

但是如何使用doc.select(使用哪个选择器?);在这?

1 个答案:

答案 0 :(得分:0)

不是Android问题,而是CSS选择器问题。您可以在http://www.w3.org/TR/CSS2/selector.html

了解更多相关信息

像这样进行屏幕抓取总是很棘手,并且没有“正确”的解决方案。

您需要执行多个选择步骤。

  1. 像“body&gt; table&gt; tr”这样的选择器。拿第一个元素。这将为您提供初始TR元素。
  2. 验证TR元素,获取其子元素并验证其中一个元素是否为“SUBJECT NAME”。
  3. 然后可以按顺序处理其他TR元素。