Android 上解析 HTML,主要性能问题
我需要解析大约 100 kB 的 HTML 数据,这只会在 Android 上导致巨大的性能问题。我尝试过内置的 XML 解析器和 JTidy。
内置的 XML 解析器给了我大约半秒的解析时间,我可以轻松忍受。问题是使用 XML 解析器来解析凌乱的 HTML 代码不是一个好主意,这不是一个选项。 (我尝试过预处理,但它甚至开始抱怨有效的 HTML,所以......)
我用 google 搜索了一下,建议使用 JTidy 在将代码传递给 XML 解析器之前清理代码。这绝对是一场噩梦,使用 JTidy 进行预处理解析现在大约需要7 秒。
所以现在我唯一的选择就是正则表达式。你怎么认为?
I need to parse about 100 kB of HTML data and this simply causes huge performance issues on Android. I've tried both the built-in XML parser and JTidy.
The built-in XML parser gives me a parsing time of about half a second, which I can easily live with. Problem is that it's a bad idea to use an XML parser to parse messy HTML code, those this is not an option. (I tried preprocessing, but it even started complaining about valid HTML, so...)
I googled a bit and JTidy was suggested for cleaning up the code before passing it to an XML parser. This was an absolute nightmare, with JTidy for preprocessing parsing now takes approximately 7 seconds.
So now my only alternative really is regex. What do you think?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这取决于您是否是 html 的所有者。
如果(据我所知)您不是 html 数据的所有者并且无法影响其格式,那么您可能会发现此信息有用: 在 Android 中解析 HTML
但如果html真的很糟糕的话,结果就无法保证了。而且您更喜欢使用正则表达式。
即使浏览器在处理“坏”html 时也会切换到怪异模式,而无法保证查看的正确性。
It depends on whether you are owner of html.
If (as I understood) you are not owner of html data and can't influence on how it is formatted, then you probably find this info useful: Parse HTML in Android
But if html is really bad, the result can't be guaranteed. And you would prefer working with regex.
Even browsers switch to quirks mode when work with "bad" html without guarantee of correctness viewing.