使用jsoup追求表

时间:2016-11-12 14:59:29

标签: android html-table jsoup

如何使用jsoup将整个表包装到Android中?

让输入:

<table>
<tr>
<th>name</th>
<th>age</th>
</tr>
<tr>
<td>john doe</td>
<td>25</td>
</tr>
<tr>
<td>xxx yyy </td>
<td>28</td>
</tr>

输出: 姓名年龄 约翰多恩25 xxx yyy 28 。顺便说一句,你不必手动接受输入。我需要从我的网站上找到这张桌子。

2 个答案:

答案 0 :(得分:1)

现在我无法尝试,但你可以使用这样的东西:

Elements ths = document.select("table tr th");
ths.html()

Elements tds = document.select("table tr td");
tds.html()

我不知道返回的字符串格式,如果它们被某些空格分隔,但你可以试试。

如果您想单独管理tds输出,您可以迭代元素并获取单个html值

答案 1 :(得分:1)

您可以使用text()的{​​{1}}方法:

Element

输出:

final String html = "<table>\n"
        + "<tr>\n"
        + "<th>name</th>\n"
        + "<th>age</th>\n"
        + "</tr>\n"
        + "<tr>\n"
        + "<td>john doe</td>\n"
        + "<td>25</td>\n"
        + "</tr>\n"
        + "<tr>\n"
        + "<td>xxx yyy </td>\n"
        + "<td>28</td>\n"
        + "</tr>";

Document doc = Jsoup.parse(html);
Element table = doc.select("table").first(); // Take first 'table' found

System.out.println(table.text()); // Print result

如果您有多个表格:

name age john doe 25 xxx yyy 28

或者从JDK8开始:

for( Element e : doc.select("table") )
{
    System.out.println(e.text());
}

获取JS内容(参见评论)