什么是在Android中最快的方式来浏览HTML网页?

我需要从Android中的非结构化网页中提取信息。我想要的信息嵌入在一个没有id的表中。

<table> 
<tr><td>Description</td><td></td><td>I want this field next to the description cell</td></tr> 
</table>

我应该用吗

模式匹配?
>使用BufferedReader来提取信息?

还是有更快的方式来获得这些信息?

我认为在这种情况下,寻找快速的方式来提取信息是没有意义的,因为当您将其与下载HTML所需的时间进行比较时,已经在答案中已经提出的方法之间几乎没有性能差异。

所以假设最快你的意思是最方便,可读和可维护的代码,我建议你使用DocumentBuilder来解析相关的HTML并使用XPathExpressions提取数据:

Document doc = DocumentBuilderFactory.newInstance()
  .newDocumentBuilder().parse(new InputSource(new StringReader(html)));

XPathExpression xpath = XPathFactory.newInstance()
  .newXPath().compile("//td[text()=\"Description\"]/following-sibling::td[2]");

String result = (String) xpath.evaluate(doc, XPathConstants.STRING);

如果您碰巧检索无效的HTML,我建议隔离相关部分(例如使用子字符串(indexOf(“< table”)..),如果需要,在解析之前必须使用String操作纠正剩余的HTML错误,如果这太复杂了(即非常糟糕的HTML),只要按照其他答案中提出的hacky模式匹配方法。 备注
XPath从API Level 8(Android 2.2)开始可用。如果您开发较低的API级别,则可以使用DOM方法和条件来导航到要提取的节点

http://stackoverflow.com/questions/2971155/what-is-the-fastest-way-to-scrape-html-webpage-in-android

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:什么是在Android中最快的方式来浏览HTML网页?