java – 如何将HTML转换为2D数组
发布时间:2020-12-15 04:58:27 所属栏目:Java 来源:网络整理
导读:让我说我复制一个完整的 HTML表(当每个tr和td都有额外的属性时) 成为一个字符串.如何获取所有内容(标签之间的内容)并创建一个像原始表一样组织的2D数组? 例如,对于此表: table border="1" tr align= "center" td align="char"TD1/td tdtd1/td td align="ch
让我说我复制一个完整的
HTML表(当每个tr和td都有额外的属性时)
成为一个字符串.如何获取所有内容(标签之间的内容)并创建一个像原始表一样组织的2D数组? 例如,对于此表: <table border="1"> <tr align= "center"> <td align="char">TD1</td> <td>td1</td> <td align="char">TD1</td> <td>td1</td> </tr> <tr> <td>TD2</td> <td>tD2</td> <td class="bold>Td2</td> <td>td2</td> </tr> </table> 我想要这个数组: PS:我知道我可以使用正则表达式,但它会非常复杂.我想要一个像JSoup这样的工具,可以自动完成所有工作而无需编写太多代码 解决方法
这是使用JSoup(
srsly,don’t use regexp for HTML)完成的方法.
Document doc = Jsoup.parse(html); Elements tables = doc.select("table"); for (Element table : tables) { Elements trs = table.select("tr"); String[][] trtd = new String[trs.size()][]; for (int i = 0; i < trs.size(); i++) { Elements tds = trs.get(i).select("td"); trtd[i] = new String[tds.size()]; for (int j = 0; j < tds.size(); j++) { trtd[i][j] = tds.get(j).text(); } } // trtd now contains the desired array for this table } 此外,在您的示例中,类属性值未在此处正确关闭: <td class="bold>Td2</td> 它应该是 <td class="bold">Td2</td> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |