2017-07-02 779 views
0

我有一个包含HTML表格的StringBuilder。我想知道,如果我可以使用某种类型的库或任何东西在控制台中打印此表。 例如:使用Java在控制台中打印HTML表格

StringBuilder string = "<table> 
    <tr> 
    <th>Company</th> 
    <th>Contact</th> 
    <th>Country</th> 
    </tr> 
    <tr> 
    <td>Alfreds Futterkiste</td> 
    <td>Maria Anders</td> 
    <td>Germany</td> 
    </tr> 
</table>" 

我想打印上面的字符串以表格的形式在控制台这样的,我并不需要指定像列标题或任何其他信息的任何表信息。

+0

'System.out.println(string.toString())'你的意思是说这个? –

+0

@ atulquest93你不需要toString和println –

+0

我想打印表格的行和列,我们在HTML页面中看到的。 –

回答

0

@jhutan试试这个来产生你正在寻找的输出。

public static void main(String[] args) throws IOException { 
    String html = "https://www.w3schools.com/html/html_tables.asp"; 
    Document doc = Jsoup.connect(html).get(); 
    Elements tableElements = doc.select("table"); 
    Elements tableHeaderEles = tableElements.select("th"); 
    System.out.println("headers"); 
    System.out.println("tableHeaderEles.size()" + tableHeaderEles.size()); 
    StringBuilder th = new StringBuilder(); 
    for (int i = 0; i < tableHeaderEles.size(); i++) { 

     th.append(tableHeaderEles.get(i).text()); 
     th.append(" "); 
    } 
    System.out.println(th); 

    Elements tableRowElements = tableElements.select(":not(thead) tr"); 
    for (int i = 0; i < tableRowElements.size(); i++) { 
     Element row = tableRowElements.get(i); 
     Elements rowItems = row.select("td"); 
     StringBuilder a = new StringBuilder(); 
     for (int j = 0; j < rowItems.size(); j++) { 
      a.append(rowItems.get(j).text()); 
     } 
     System.out.println(" " + a); 
     // System.out.println(); 
    } 
}