我需要在我的 Android 应用程序中处理一些 HTML 页面,我更愿意使用 XPath 来提取相关信息。对于常规 J2SE,有很多可能的实现将常规 HTML 解析为 org.w3c.dom.Document。 :
(列表可能不完整 - 它已从 https://stackoverflow.com/questions/2009897/recommend-an-alternative-to-jtidy 中提取)
但是要估计这些库是否以及如何在 Android 上运行(库大小、cpu 和内存消耗)是非常复杂的。
根据您的经验 - 您为 Android 选择的库是什么?
最佳答案
好吧,看来没人能回答这个问题——那我得自己查查了。
jTidy
我下载了最新的 jTidy 源代码,编译它们并将创建的 jar 文件作为库添加到我的 Android 应用程序中。在我的应用程序(模拟器和真机)中使用 jTidy 没有问题。在运行时 jTidy 也能正常工作——但它似乎不太适合有限的 Android 环境——它工作得非常慢。查看 Logcat 输出,甚至解析一个 ~10kb 的 html 文件都会导致垃圾收集器大量工作。
HTMLCleaner
根据我的经验,HTMLCleaner 在 Android 上也能正常工作;库大小相对较小(v2.2 为 106KB)。然而,它创建的解析 DOM 并不像预期的那样 - HTMLCleaner 插入例如额外的 <span>
元素到 DOM 中。如果您想将其显示为 HTML 文件,这可能没问题,但对于我的用例 - 通过 XPath 表达式提取信息 - 这是不行的!
标签汤
未测试
杰里科
未测试
NekoHTML
未测试
JSoup
未测试
关于java - 哪个 HTML DOM 解析器在 Android 上效果最好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545972/