Android解析html

在Android中解析HTML,可以使用Jsoup库,它是一个用于解析和操作HTML的便捷API。以下是一个简单的例子,展示了如何使用Jsoup来提取HTML中的内容。

1.首先,在build.gradle文件中添加Jsoup的依赖:
dependencies {
    implementation 'org.jsoup:jsoup:1.13.1'
}
2.使用Jsoup解析HTML中的表格,效果图如下:

3.代码如下:
String htmlRead = "<table style=\"width:736px;\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#E4E4E4\"><tr bgcolor=\"#F2F2F2\"><th width=\"21%\">文章名称</th><th width=\"43%\">最新章节</th><th width=\"13%\">作者</th><th width=\"8%\">字数</th><th width=\"9%\">更新</th><th width=\"6%\">状态</th></tr><tr bgcolor=\"#FFFFFF\"><td class=\"L\"><a href=\"/quanwen/71215/\" title=\"斗破苍穹简介\">[简介]</a><a href=\"/xs71215/\" target=\"_blank\">斗破苍穹</a></td><td class=\"L\"><a href=\"/xs71215/\" target=\"_blank\"> 《:斗帝之路》手游·角色传记(下)</a></td><td class=\"C\">天蚕土豆</td><td class=\"R\">1520040</td><td class=\"C\">05-28</td><td class=\"C\">完结</td></tr><tr bgcolor=\"#FFFFFF\"><td class=\"L\"><a href=\"/quanwen/87112/\" title=\"末世:从加点开始无限进化简介\">[简介]</a><a href=\"/xs87112/\" target=\"_blank\">末世:从加点开始无限进化</a></td><td class=\"L\"><a href=\"/xs87112/\" target=\"_blank\"> 第一千二百六十三章 一切,靠实力说话!</a></td><td class=\"C\">猪小小</td><td class=\"R\">5260110</td><td class=\"C\">07-16</td><td class=\"C\">连载</td></tr><tr bgcolor=\"#FFFFFF\"><td class=\"L\"><a href=\"/quanwen/85927/\" title=\"人道大圣简介\">[简介]</a><a href=\"/xs85927/\" target=\"_blank\">人道大圣</a></td><td class=\"L\"><a href=\"/xs85927/\" target=\"_blank\"> 第两千三百七十五章 逆子</a></td><td class=\"C\">莫默</td><td class=\"R\">18475040</td><td class=\"C\">07-16</td><td class=\"C\">连载</td></tr></table>";

Document doc = Jsoup.parse(htmlRead);
Element tableElement = doc.select("table").first();
Table table = new Table();

boolean hasTd = false;
for (Element rowElement : tableElement.select("tr")) {
    TableRow row = new TableRow();
    hasTd = false;
    for (Element cellElement : rowElement.select("td")) {
        hasTd = true;
        row.addCell(cellElement.text());
    }
    if (hasTd)
        table.addRow(row);
}
public class TableRow {
    private List<String> cells = new ArrayList<>();

    public void addCell(String cell) {
        cells.add(cell);
    }
}
public class Table {
    private List<TableRow> rows = new ArrayList<>();

    public void addRow(TableRow row) {
        rows.add(row);
    }
}
 4.获取属性方法(比如获取上面td中的a的href值):
for (Element aElement : cellElement.select("a")) {
    Log.e("html", aElement.attr("href"));
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值