2011-05-11 23 views
0

我需要從網站獲取表格並將其放入應用程序。我的方法是這樣的:連接到一個網站,將html放入一個字符串,將表格數據放入一個webview。我已成功連接到網站,將HTML放入一個名爲myString的變量中,並且甚至將myString加載到webview中作爲測試。從html中解析<table>標記,然後在webview中顯示

我的問題是什麼是最好的方式只加載<table>這裏的一切</table>。換句話說,我只想要表格數據。 我已經嘗試過使用xpath,但似乎無法使其工作。 另外,展望下一步我最終將不得不改變填充和表的不同,使它看起來更好的設備正確?

回答

0

如果我理解正確的話,這樣的事情可能會爲你的目的:

int start = myString.indexOf("<table"); 
if(start < 0) 
    Log.d(this.toString(), "Table start tag not found"); 
else { 
    int end = myString.indexOf("</table>", start) + 8; 
    if(end < 0) 
     Log.d(this.toString(), "Table end tag not found"); 
    else 
     myString = "<html><body>" + myString.substring(start, end) + "</body></html>"; 
} 

然後加載的myString到您的WebView,它應該從原來的網頁只包含一個表。


編輯:上面的例子是大小寫敏感的,即,它不會找到一個大寫<TABLE>標籤。雖然它可能不是最有效的方法,但使其不區分大小寫的一種方法是在搜索之前將字符串轉換爲小寫,例如:

int start = myString.toLowerCase().indexOf("<table"); 
... 
int end = myString.toLowerCase().indexOf("</table>", start) + 8;