在Android中解析HTML

Ale*_*rta 3 html java android

我试图解析HTML的特定数据,但我遇到了返回字符的问题,至少我认为这就是问题所在.我正在使用一个简单的子字符串方法来拆分HTML,因为我事先知道我在寻找什么.

这是我的解析方法:

public static void parse(String response, String[] hashItem, String[][] startEnd) throws Exception
{

    for (i = 0; i < hashItem.length; i++)
    {
        part = response.substring(response.indexOf(startEnd[i][0]) + startEnd[i][0].length());
        value = part.substring(0, part.indexOf(startEnd[i][1]));
        DATABASE.setHash(hashItem[i], value);
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是给我提出问题的HTML示例

<table cellspacing=0 cellpadding=2 class=smallfont>
<tr onclick="lu();" onmouseover="style.cursor='hand'">
<td class=bodybox nowrap>&nbsp;     21,773,177,147 $&nbsp;</td><td></td>
<td class=bodybox nowrap>&nbsp;        629,991,926 F&nbsp;</td><td></td>
<td class=bodybox nowrap>&nbsp;             24,537 P&nbsp;</td><td></td>
<td class=bodybox nowrap>&nbsp;                  0 T&nbsp;</td>
<td></td><td class=bodybox nowrap>&nbsp;RT&nbsp;</td>
Run Code Online (Sandbox Code Playgroud)

有隐藏的返回字符,但是当我尝试将它们添加到我尝试使用的字符串中时,如果有的话,它不会很好.是否有一种方法或者更好的方法从HTML中删除隐藏的字符以使其更容易解析?一如既往地非常感谢任何帮助.

dro*_*ren 8

如果你想让解析变得非常简单,试试Jsoup:

此示例将下载页面,解析并获取文本.

Document doc = Jsoup.connect("http://jsoup.org").get();

Elements tds = doc.select("td.bodybox");

for (Element td : tds) {
  String tdText = td.text();
}
Run Code Online (Sandbox Code Playgroud)