从html解析标记,然后在webview <table> </table>中显示

时间:2011-05-11 22:16:39

标签: android html parsing webview html-table

我需要从网站上取一张桌子并将其放入应用程序中。我的方法是:连接到站点,将html放入字符串,将表数据放入webview。我已经成功连接到网站,将HTML放入一个名为myString的变量中,甚至将加载的myString作为测试加入到webview中。

我的问题是,只在这里加载<table>所有内容</table>的最佳方法是什么。换句话说,我只想要表数据。 我已经尝试过xpath,但似乎无法让它工作。 此外,展望下一步,我最终将不得不更改填充和表格的哪些内容,以使其在设备上看起来更好?

1 个答案:

答案 0 :(得分: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;