我需要在Android应用程序中处理一些HTML页面,我更愿意使用XPath来提取相关信息。对于常规J2SE,有很多可能的实现方法可以将常规HTML解析为org.w3c.dom.Document:
(列表可能不完整 - 已从https://stackoverflow.com/questions/2009897/recommend-an-alternative-to-jtidy中提取)
但是估计这些库在Android上是否有效以及它们有多好(库大小,CPU和内存消耗)是非常复杂的。
根据您的经验 - 您选择的Android库是什么?
答案 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 强>
未经测试