是否有更快的方法将html字符解码为字符串而不是Html.fromHtml()?

时间:2010-12-01 06:49:28

标签: android html string decode html-entities

我正在使用Html.fromHtml(STRING).toString()将可能包含html和/或html实体的字符串转换为纯文本字符串。

这很慢,我想我最后的计算是平均花了大约22毫秒。对于大批这些,它可以添加超过一分钟。所以我正在寻找一种更快,性能更高的选项。

有没有提高速度,还是有其他解码选择?

编辑:由于似乎没有更快或专为性能而构建的内置方法,我会奖励任何可以指向我的图书馆方向的人的是:

  • 适用于Android
  • 许可免费使用
  • Html.fromHtml(String).toString();
  • 更快

作为一个注释,我已经尝试过使用这种方法的Jsoup:Jsoup.parse(String).text()并且速度较慢。

6 个答案:

答案 0 :(得分:35)

org.apache.commons.lang.StringEscapeUtils的unescapeHtml()怎么样?该库可在Apache网站上找到。

答案 1 :(得分:3)

fromHtml()没有高性能的HTML解析器,我不知道toString()上的SpannedString实施速度有多快。我怀疑是否是为你的场景设计的。

理想情况下,琴弦在进入低功耗手机之前是干净的。在构建过程中清理它们(对于资源/资产),或者在服务器上清理它们(在下载之前)。

如果出于某种原因,您绝对需要在设备上清理它们,您可以使用NDK创建一个C / C ++库,以便更快地为您进行清理。

答案 2 :(得分:2)

这是一个非常快速和简单的选择: Unbescape

它极大地提高了我们的解析性能,这需要每个字符串都通过解码器运行。

答案 3 :(得分:0)

答案 4 :(得分:0)

  

有一大批这些可以添加   超过一分钟

任何解析都需要一些时间。 22ms对我来说似乎很快。 无论如何,你能在后台做吗?可以帮助你进行某种缓存吗?

答案 5 :(得分:0)

虽然我还没有尝试过,但我找到了一些可能的解决方案:

  1. HTML Java Parsers
  2. HTML Parsing
  3. More HTML Parsing
  4. 我希望它有所帮助。