0

我正在尝试解析 iphone 中一些不复杂的 RSS html 内容。

所以我不需要繁重的 HTML 解析器。

我在这里搜索并找到了这两个:

https://github.com/topfunky/hpple

https://github.com/zootreeves/Objective-C-HMTL-Parser

两者都易于使用。但我想他们的问题是出于我的目的。

对于 TFHpple,这很好,但对于每个元素,它本身并没有完整的 HTML <>。例如,元素没有这个完整的标签字符串。我需要这个完整的标签字符串,因为我需要从整个 HTML 字符串中删除它。如果元素有,我会更方便。

对于zootreeves HTML-Parser,它也简单好用。它具有每个元素的完整标签字符串。我很高兴。但是,它似乎是一个很大的内存消耗者。我监视它。如果我尝试解析大量 HTML 片段(例如 1000 个),它将花费和占用的内存大约为 40MB。它不适用于 ios 设备。我猜 zootreeves 正在使用纯 C 代码和链表来组织 HTML 的树结构。它使用纯 malloc 和 free 内存。我不知道这是否会影响ios内存。

那么,任何人都可以为我推荐一个更好、更快、更简单的用于 iO 的最先进的 HTML 解析器吗?

谢谢

4

1 回答 1

0

我会使用libxml2。它不仅适用于 xml;它也有一个 HTML 解析器。它速度快、内存低,可在 iOS 中使用。唯一的缺点是它是一个基于 C 的 API,但使用起来并不难。

更新

回应下面的第一条评论:已经有一段时间了,所以我不确定,但我不这么认为。你得到的是一个包含大量文档结构信息的数据结构,每个标签都有一个属性/值对列表。原始 html 字符串无处存储(我认为这被认为是多余的,并不是为了节省内存)。

但是,看起来您实际上并不需要它来做您想做的事情。在我看来,您正在使用解析器中的信息来修改原始字符串,去除 HTML 标记。相反,您想要做的是使用解析树中的信息重建文档,并且当您这样做时,请忽略您想要省略的标签。

于 2011-08-11T09:46:10.990 回答