Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用jsoup搜索表_Android_Html Table_Jsoup - Fatal编程技术网

Android 使用jsoup搜索表

Android 使用jsoup搜索表,android,html-table,jsoup,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&

如何使用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
输出: 姓名年龄 约翰·杜25 xxx yyy 28
.Btw,您不必手动进行输入。我需要从我的网站上获取表格。

现在我无法尝试,但您可以使用以下内容:

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

Elements tds = document.select("table tr td");
tds.html()
我不知道返回字符串的格式,它们是否用空格分隔,但您可以试试

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

,您可以使用
元素
text()
方法:

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
如果您有多个表:

for( Element e : doc.select("table") )
{
    System.out.println(e.text());
}
或者从JDK8开始:

doc.select("table").forEach((e) ->
{
    System.out.println(e.text());
});

获取JS内容(参见注释)

好吧,兄弟,你的答案看起来很有希望,但不知何故,它不起作用。听着,字符串格式不重要。我会处理好的。但是,我根本拿不到绳子。。。你能告诉我我应该怎么做才能得到一个特定表的所有元素吗?比方说,这个表有一个名为“特殊表”的类。对不起,兄弟,我的问题格式不对。实际上,您不必手动获取该输入。比如说,这个网站上有一个表格。你要怎么做才能抢那张桌子?你的答案看起来很有希望,这就是为什么我认为你可以帮我的原因:)解析一个网站而不是一个字符串不是什么大问题,只需将
Jsoup.parse(…)
替换为
Jsoup.connect(“此处的url”).get()
。这将连接到网站,解析其内容,您可以像往常一样继续–超时、用户代理、登录数据、cookies等也可以设置。我看到您提到的页面存在一个问题:它严重依赖Javascript,例如,表中没有纯html–Jsoup无法处理JS。但是也有解决办法,我会在我的答案中编辑一些方法。如果你的问题解决了,请接受解决你问题的答案。
doc.select("table").forEach((e) ->
{
    System.out.println(e.text());
});