Java 使用JSOUP分析表中的表
我试图通过使用jsoup解析HTML来从表中提取一些数据 举个例子,Java 使用JSOUP分析表中的表,java,html,jsoup,Java,Html,Jsoup,我试图通过使用jsoup解析HTML来从表中提取一些数据 举个例子, String tableHtml = "<table> <thead> <tr><th> <table> <tr><td>asdf</td></tr>
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());
String表html=
"
asdf
asdf
我想要的文本
";
Document doc=Jsoup.parseBodyFragment(tableHtml);
元素表=文件选择(“表”).first();
元素r=table.select(“tfoot”).first();//我在这里得到空值///为什么???
System.out.println(“------------”+r.text());
我得到空指针异常
然而,如果我删除其中一个内部表,我不会得到异常,它会工作。另外,如果我将标签
更改为
,它也可以工作。奇怪的行为。
这只是我试图解析的真实html的一个示例。
如果有人能指出我为什么会得到这个例外,我将不胜感激。多谢各位
注意。请假设我不能修改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());