iOS XML 解析常用工具

XML 文档操作有“读”和“写”,读入 XML 文档并分析的过程称为“解析”。事实上,在使用 XML 开发过程中,“解析”XML 文档占很大的比重
解析 XML 文档时,目前有两种流行的模式:SAX 和 DOM。SAX 是一种基于事件驱动的解析模式。解析 XML 文档时,程序从上到下读取 XML 文档,如果遇到开始标签、结束标签和属性等,就会触发相应的事件。但是这种解析 XML 文件时有一个弊端,那就是只能读取 XML 文档,不能写入 XML 文档,它的优点是解析速度快。iOS 重点推荐使用 SAX 模式解析。
DOM 模式将 XML 文档所谓一颗树状结构进行分析,获取节点的内容以及相关属性,或是新增、删除和修改节点的内容。 XML 解析器在加载 XML 文件后, DOM 模式将 XML 文件的元素视为一个树状结构的节点,一次性读入到内存中。如果文档比较大,解析速度就会变慢。但是 DOM 模式中,有一个是 SAX 无法取代的,那就是 DOM 能够修改 XML 文档。
iOS SDK 提供了两个 XML 框架:
1. NSXML。基于 OC 的 SAX 解析框架,是 iOS SDK 默认的 XML 解析框架,不支持 DOM 模式
2. libxml2。基于 C 语言的 XML 解析器,支持 SAX 和 DOM 模式

此外还有一些优秀的第三方框架
1. TBXML。轻量级的 DOM 模式解析库,不支持 XML 文档验证和 XPath,只能读取 XML 文档,不能写 XML 文档,但是解析 XML 最快的
2. TouchXML。基于 DOM 模式的解析库。与 TBXML 类似。
3. KissXML。基于 DOM 模式的解析库,基于 TouchXML,主要的不同是可以写入 XML 文档。
4. TinyXML。基于 C++ 的 DOM 模式解析库。可以读写 XML 文档,不支持 XPath
5. GDataXML。基于 DOM 模式的解析库。由 Google 开发,可以读写 XML 文档,支持 XPath 查询。

对于 XML 中涉及的属性节点等概念,推荐大家阅读 3C 学院的这篇文章

猜你喜欢

转载自blog.csdn.net/kaiyuanheshang/article/details/54230251