在Android上解析HTML,主要性能问题

3
我需要解析大约100kB的HTML数据,在Android上这会导致巨大的性能问题。我尝试过内置的XML解析器和JTidy。
内置的XML解析器给出了约半秒的解析时间,这对我来说是可以接受的。但问题是,使用XML解析器来解析混乱的HTML代码是一个坏主意,所以这不是一个选项。(我尝试过预处理,但它甚至开始抱怨有效的HTML,所以...)
我谷歌了一下,JTidy被建议用于在将其传递给XML解析器之前清理代码。这是一场绝对的噩梦,使用JTidy进行预处理现在需要大约7秒的时间。
所以现在我的唯一替代方案就是正则表达式。你认为呢?

2
我认为正则表达式不是解析HTML的可行替代方案。 - MusiGenesis
奇怪的是,我一直试图将它添加为答案,但却被转到了评论区。 - MusiGenesis
1个回答

0

这取决于您是否是HTML的所有者。

如果(我理解的话)您不是HTML数据的所有者,无法影响其格式,则您可能会发现此信息有用:在Android中解析HTML
但是,如果HTML确实很糟糕,则无法保证结果。您可能更喜欢使用正则表达式。 即使浏览器在处理“糟糕”的HTML时也会切换到怪异模式,而不能保证正确查看。


因为所有的HTML解析器都非常慢,所以我写了几个正则表达式来将这个特定的HTML转换成有效的XML。 - Overv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接