【问题标题】:Parsing <table> tag from html, then display in webview从 html 中解析 <table> 标签,然后在 webview 中显示
【发布时间】:2011-05-11 22:16:38
【问题描述】:
我需要从网站上获取一张桌子并将其放入应用程序中。我的方法是这样的:连接到站点,将 html 放入字符串,将表格数据放入 webview。我已经成功连接到网站,将 HTML 放入一个名为 myString 的变量中,甚至将 myString 加载到 webview 中作为测试。
我的问题是在</table> 仅加载<table> 的所有内容的最佳方式是什么。换句话说,我只想要表格数据。
我已经尝试过 xpath,但似乎无法让它工作。
此外,展望下一步,我最终将不得不更改表格的填充和其他内容,以使其在设备上看起来更好正确吗?
【问题讨论】:
标签:
android
html
parsing
webview
html-table
【解决方案1】:
如果我对您的理解正确,这样的事情可能会达到您的目的:
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;