Java – how to convert HTML to 2D arrays

Let me say I copy a complete HTML table (when each TR and TD has additional attributes)

For example, for this table:

<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>

I want this array:

PS: I know I can use regular expressions, but it will be very complex I want a tool like jsoup that can automatically do all the work without writing too much code

Solution

This is done using 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
}

In addition, in your example, the class property value is not closed correctly here:

<td class="bold>Td2</td>

It should be

<td class="bold">Td2</td>
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>