iOS平台XML解析类库对比和安装说明 iOS平台XML解析类库对比和安装说明

在iPhone开发中,XML的解析有不少选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有不少第三方类库可选,例如TBXML、TouchXML、KissXML、TinyXML和GDataXML。问题是应该选择哪个呢?html

解析 XML 一般有两种方式,DOM 和 SAX:ios

  • DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),经过遍历树结构能够检索任意XML节点,读取它的属性和值。并且一般状况下,能够借助XPath,直接查询XML节点。
  • SAX解析XML,是基于事件通知的模式,一边读取XML文档一边处理,没必要等整个文档加载完以后才采起操做,当在读取解析过程当中遇到须要处理的对象,会发出通知对其进行处理。

通常在iOS平台下,比较经常使用的XML解析类库有以下几种:git

安装说明
GDataXML

1. 从http://code.google.com/p/gdata-objectivec-client/downloads/list下载“gdata-objective-c client library.”github

2. 解压缩文件,找到Source\XMLSupport,而且将其中的GDataXMLNode.h 和 GDataXMLNode.m文件拖到项目中objective-c

3. 选中项目,选中“Build Settings”标签页app

4. 将Build Settings页中,顶部的“Basic”标签切换到“All”iphone

5. 找到“Paths\Header Search Paths”项,并添加“/usr/include/libxml2”到列表中post

6. 找到“Linking\Other Linker Flags”项,并添加“-lxml2”到列表中性能

clip_image002

在须要调用GDataXML的代码文件头部,加入:ui

#import “GDataXMLNode.h”

TouchXML

1. 从https://github.com/TouchCode/TouchXML下载最新TouchXML源码

2. 解压后,将其中的Sources目录下的文件和目录都拖到项目中

3. 选中项目,选中“Build Settings”标签页

4. 将Build Settings页中,顶部的“Basic”标签切换到“All”

5. 找到“Paths\Header Search Paths”项,并添加“/usr/include/libxml2”到列表中

6. 找到“Linking\Other Linker Flags”项,并添加“-lxml2”到列表中

在须要调用TouchXML的代码文件头部,加入:

#import “TouchXML.h”

TBXML

1. 从http://www.tbxml.co.uk/TBXML/TBXML_Free.html下载最新TBXML源码

2. 解压后,将其中的TBXML.h, TBXML.m, NSDataAdditions.h和NSDataAddtions.m四个文件拖到项目中

3. 添加对libz.dylib类库的应用

在须要调用TBXML的代码文件头部,加入:

#import “TBXML.h”

使用说明
GDataXML

读取XML文件,并解析成为DOM文档对象示例:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"xml"];

NSData *xmlData = [[NSMutableData alloc] initWithContentsOfFile:filePath];

NSError *error;

GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:&error];

if (doc == nil) { return nil; }

NSLog(@"%@", doc.rootElement);

[doc release];

[xmlData release];

相关文章
相关标签/搜索