解析的基本概念
所谓“解析”:从事先规定好的格式中提取数据 解析的前提:提前约定好格式、数据提供方按照格式提供数据、
数据获取方则按照格式获取数据 iOS开发常见的解析:XML解析、JSON解析
XML数据结构
XML基本概念
XML:Extensible Markup language(可扩展标记语言),主流数 据格式之一,可以用来存储和传输数据。
XML数据格式的功能
数据交换
内容管理
用作配置文件
XML数据结构的语法
声明
节点使用一对标签表示。起始和结束标签。
根节点是起始节点,只有一个。节点可以嵌套。
节点可以有值。存储在一对儿标签中。
进行XML解析式使用到的SAX工具
SAX解析
SAX:Simple API for XML。
基于事件驱动的解析方式,逐行解析数据。(采用协议回调机制)
NSXMLParser类
NSXMLParser是iOS自带的XML解析类。采用SAX方式解析数据。
解析过程由NSXMLParserDelegate协议方法回调
解析过程:开始标签->取值->结束标签->取值
例题:
新建工程,Appdelegate中
RootViewController *rootVC = [[RootViewController alloc] init];
UINavigationController *navC = [[UINavigationController alloc] initWithRootViewController:rootVC];
self.window.rootViewController = navC;
[navC release];
[rootVC release];
根视图控制器中,解析XML数据
- (void)xmlParserUpData
{
// 利用的是系统的 NSXMLParser
// xml 分析人 类
// 以驱动事件循环进行xml的解析(利用触发的代理方法解析)
// 真谛:逐行解析
// 获取路径
NSString *path = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"xml"];
// 创建要分析的data(二进制对象)
NSData *data = [NSData dataWithContentsOfFile:path];
// 创建分析人
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
// 驱动事件(设置代理)
parser.delegate = self;
// 开始分析
[parser parse];
// 释放
[parser release];
}
创建StudentModel
// StudentModel.h中,声明属性与xml文件中一致
@property (nonatomic, retain) NS