哪种HTML DOM解析器在Android上运行得最好?

时间:2011-09-25 14:01:18

标签: java android parsing dom screen-scraping

我需要在Android应用程序中处理一些HTML页面,我更愿意使用XPath来提取相关信息。对于常规J2SE,有很多可能的实现方法可以将常规HTML解析为org.w3c.dom.Document

(列表可能不完整 - 已从https://stackoverflow.com/questions/2009897/recommend-an-alternative-to-jtidy中提取)

但是估计这些库在Android上是否有效以及它们有多好(库大小,CPU和内存消耗)是非常复杂的。

根据您的经验 - 您选择的Android库是什么?

1 个答案:

答案 0 :(得分:2)

好吧,看起来没有人可以回答这个问题 - 然后我必须自己检查一下。

<强> jTidy

我下载了最新的jTidy源代码,编译它们并将创建的jar文件作为库添加到我的Android应用程序中。在我的应用程序(模拟器和真实手机)中使用jTidy没有问题。在运行时,jTidy也可以正常工作 - 但它似乎不适合有限的Android环境 - 它的工作速度非常慢。查看Logcat输出,即使解析一个~10kb的html文件也会导致垃圾收集器大量工作。

HTMLCleaner

根据我的经验,HTMLCleaner在Android上也很不错;库大小相对较小(v2.2为106KB)。但是,它创建的解析DOM并不像预期的那样 - HTMLCleaner将更多<span>个元素插入到DOM中。如果你想把它显示为一个HTML文件,但是对于我的用例 - 通过XPath表达式来提取信息 - 这是不行的,这可能没问题!

<强> TagSoup

未经测试

<强>杰里科

未经测试

<强> NekoHTML

未经测试

<强> JSoup

未经测试