我正在尝试解析特定数据的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);
}
}
以下是给我提出问题的HTML示例
<table cellspacing=0 cellpadding=2 class=smallfont>
<tr onclick="lu();" onmouseover="style.cursor='hand'">
<td class=bodybox nowrap> 21,773,177,147 $ </td><td></td>
<td class=bodybox nowrap> 629,991,926 F </td><td></td>
<td class=bodybox nowrap> 24,537 P </td><td></td>
<td class=bodybox nowrap> 0 T </td>
<td></td><td class=bodybox nowrap> RT </td>
有隐藏的返回字符,但是当我尝试将它们添加到我尝试使用的字符串中时,它就不会很好,如果有的话。是否有一种方法或者更好的方法从HTML中删除隐藏的字符以使其更容易解析?任何帮助都会一如既往地受到高度赞赏。
答案 0 :(得分:8)
如果您想轻松解析,请尝试Jsoup:
此示例将下载页面,解析并获取文本。
Document doc = Jsoup.connect("http://jsoup.org").get();
Elements tds = doc.select("td.bodybox");
for (Element td : tds) {
String tdText = td.text();
}
答案 1 :(得分:1)
您可以尝试使用Android中提供的XMLPullParser
。您可以使用StringBuffer
在代码之间追加字符。
答案 2 :(得分:0)
尝试使用正则表达式获取所需信息: http://java.sun.com/developer/technicalArticles/releases/1.4regex/
您甚至可以使用它删除隐藏的字符。或者使用String.Replace
删除换行符?
答案 3 :(得分:0)
您可以使用XMLReader解析HTML文件,例如据我所知,查看本文http://www.ibm.com/developerworks/xml/library/x-andbene1/