2017-07-02 45 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(); 
    } 
}