【问题标题】:Parsing <table> tag from html, then display in webview从 html 中解析 <table> 标签,然后在 webview 中显示
【发布时间】:2011-05-11 22:16:38
【问题描述】:

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

我的问题是在&lt;/table&gt; 仅加载&lt;table&gt; 的所有内容的最佳方式是什么。换句话说,我只想要表格数据。 我已经尝试过 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 中,它应该只包含原始网页中的第一个表。


    编辑:上面的示例区分大小写,即它不会找到大写的&lt;TABLE&gt; 标记。虽然它可能不是最有效的方法,但使其不区分大小写的一种方法是在搜索之前将字符串转换为小写,例如:

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

    【讨论】:

      猜你喜欢
      • 2014-05-10
      • 2017-02-28
      • 2017-06-05
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-03
      • 2012-04-26
      • 2013-06-17
      相关资源
      最近更新 更多