关于Android 的 Jsoup的学习

正巧做到这了 进行一下学习


最近有些朋友问在andoroid怎样解析html文件,webview是一个非常好的选择,如果只想解析出其中的部分数据,而且没有服务器端代码的情况下使用jsoup解析是一个非常好的选择因为其有强大的选择器。例如解析如下


该网站的通过查看页面原代码如下:

.......
<table width="100%" border="0" cellpadding="5" cellspacing="0">
                      <td>
                        <h2>Online Staff Directory</h2>
                      </td>
                    </tr>
                    <tr>
                      <td colspan="2"><img src="http://www.tp.edu.sg/spacer.gif" width="1" height="5"></td>
                    </tr>
                    <tr>
                      <td>
<form action="findstf.asp?div=All&from=" method="post">
  Staff Search: <input type="text" size="21" maxlength="30" name="name"> <input
  type="submit" value="Submit">
</form>
<hr NOSHADE size="1" width="99%"><p>

    <P><a href="mdeptlist.asp?dept=BUS&from="><< Another Division</a></P>

<p align="center" class="H1"><font color="#990000">BUS Admin/General Office                                              </font></p>
<table border="0" cellpadding ="0" width="99%" cellspacing="0">
<tr>
          <th align="left" width="10%">Dept/Sch</p></th>
          <th align="left" width="5%">&nbsp;</p></th>
          <th align="left" width="42%">Name/Designation</p></th>
          <th align="left" width="8%">Telephone</p></th>
</tr>
<tr bgcolor=#ECECEC>
    <td width="10%"  valign="top" align="left">&nbsp;</td>
    <td width="5%"  valign="top" align="left">&nbsp;</td>
    <td width="42%" valign="top" align="left">
    
<a href="mailto:senghuat@tp.edu.sg">Heng Seng Huat, Edward                            </a>

    </td>
    <TD width="8%" valign="top" align="left">67805056</td>
    </TR>    
    <tr bgcolor=#ECECEC>
    <td width="10%"  valign="top" style="padding-left:8px;" align="left">BUS/A     </td>
    <td width="5%"  valign="top" align="left">&nbsp;</td>
    <td width="42%" valign="top" align="left">
Section Head</td>
    <TD width="8%" valign="top" align="left">&nbsp;</td>
    </TR>    
<tr bgcolor=#ECECEC>
    <td width="10%"  valign="top" align="left">&nbsp;</td>
    <td width="5%"  valign="top" align="left">&nbsp;</td>
    <td width="42%" valign="top" align="left">&nbsp;</td>
    <TD width="8%" valign="top" align="left">&nbsp;</td>
    </TR>    

.......

在android中只想获取其中的名字和电话,那么解析方法如下:


import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements

......

    Document doc = Jsoup.connect("http://www-app.tp.edu.sg/scripts/staffdir/Emplist.asp?step=1&div=BUS/AF&from=").get();
            Elements links = doc.select("a[href]");
            Elements tds = doc.select("td[width=8%]");

......

因为名字是有超链接,故可以通过jsoup的选择器a[hred]获取所有的超链接内容,而后进行筛选即可获取名字;电话也是如此因为在源代码中得知电话的td标签width=8%这样的属性标识电话,可以通过选择器进行获取。

Jsoup提供了强大的选择器,如



但是这样做的话给客户端太大的压力,最好的方式还是在服务器端将数据渲染成xml或者json来做,这样客户端解析起来比较快捷,效率高。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值