gpt4 book ai didi

java - 使用 JSOUP 解析表中的表

转载 作者:行者123 更新时间:2023-12-01 13:20:25 25 4
gpt4 key购买 nike

我试图通过使用 jsoup 解析 HTML 来从表中提取一些数据。

这是一个例子,

String tableHtml =
"<table>
<thead>
<tr><th>
<table>
<tr><td>asdf</td></tr>
</table>
<table>
<tr><td>asdf</td></tr>
</table>
</th></tr>
</thead>
<tfoot>
<tr><td>
THE TEXT I WANT TO GET
</td></tr>
</tfoot>
</table>";

Document doc = Jsoup.parseBodyFragment(tableHtml);
Element table = doc.select("table").first();
Element r = table.select("tfoot").first(); // I get NULL here/// WHY???
System.out.println("-----------" + r.text());

我得到空指针异常!

但是,如果我删除其中一个内部表,我不会遇到异常并且它可以工作。另外,如果我更改标签 <th><td> , 有用。奇怪的行为。这只是我试图解析的真实 html 的一个例子。如果有人能指出我为什么会得到这个异常(exception),我将不胜感激。谢谢。

注意。请假设我无法修改 HTML。我只想按原样解析它。

最佳答案

也许不使用 HTML 解析器(显然不完全支持这种嵌套表)而使用 XML 解析器。尝试使用

Document doc = Jsoup.parse(tableHtml,"",Parser.xmlParser());
Element table = doc.select("table").first();
Element r = table.select("tfoot").first();
System.out.println("->" + r.text());

关于java - 使用 JSOUP 解析表中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22064788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com