XML解析--NSXMLParser和TouchXML

XML有两种解析方式:

  1. SAX解析

SAX:SimpleAPIfor XML。基于事件驱动的解析方式,逐行解析数据。(采用协议回调机制)

  1. DOM解析

DOM:DocumentObjectModel(文档对象模型)。解析时需要将XML文件整体读入,并且将XML结构化成树状,使用时再通过树状结构读取相关数据

NSXMLParser是iOS自带的XML解析类。采用SAX方式解析数据, 解析过程由NSXMLParserDelegate协议方法回调

NSXMLParser

NSXMLParser 由苹果SDK提供
在项目中添加协议NSXMLParserDelegate
常用的有3个方法

//  当开始处理某个元素节点时触发该方法
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict;

// 当发现元素中的内容是触发该方法
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string;

//  当处理完某个元素节点时触发该方法
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName;

TouchXML

  1. TouchXml类库下载链接 —– 注意需要改为mrc 即-fno-objc-arc
  2. 导入 CXMLDocument.h
  3. 开始解析

code案例

此处网络请求使用第三方类库ASIHttpRequest

XML数据

#import "ViewController.h"
#import "ASIFormDataRequest.h"
#import "AppDelegate.h"
#import "ASIDownloadCache.h"
#import "CXMLDocument.h"
@interface ViewController () <UITableViewDataSource,UITableViewDelegate,NSXMLParserDelegate>
{
    ASIFormDataRequest *_selectStuInfo;
    NSMutableArray *_allStudentsArr; //  所有的学生数组
    NSMutableDictionary *_studentDic;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值