博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发网络篇之Web Service和XML数据解析
阅读量:5239 次
发布时间:2019-06-14

本文共 1752 字,大约阅读时间需要 5 分钟。

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。

假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主。捐赠数额任意,重在心意^_^ 

我要捐赠: 

Cocos2d-X源代码下载:

游戏官方下载:

游戏视频预览:

游戏开发博客:

游戏源代码传送

在iPhone和后台系统的通信中,使用Web Service获取server数据上最常见的一种形式。

而在Web Service通信中。数据交换格式通常上使用XML数据,XML数据也是软件开发中普遍存在的一种格式,

因此XML解析也就成为项目开发中必须掌握的一些基本技能。

本文提供一个XML数据解析类SimpleXMLParser,

该类的特点上将XML数据解析成数据库记录形式,数据解析后保存在NSArray中,

当中数组的每一个元素相应一条数据库记录,每条记录则是由数据库字段和值组成的NSDictionary。

1、接口定义

@interface SimpleXMLParser : NSObject{	NSString *currentPropertyName;	NSMutableString *currentData;	BOOL contentError;	NSString *faultName;	NSString *faultName2;	NSMutableData *webData;	NSMutableArray *theMainStack;	NSMutableArray *currentDataStack;		NSXMLParser *parser;	NSString *recordHead;	NSInteger sectionCount;	BOOL beginRecord;	NSMutableString *currentCharacters;	NSMutableDictionary *parsedResponseDictionary;	NSString *parseElementPath;}- (id)init;- (void)initData:(NSMutableData *)data;- (void)parse:(NSString*)head;- (BOOL)isContentFault;- (NSInteger)getRecordCount;- (NSDictionary*)getRecordAtIndex:(NSInteger)idx;- (NSMutableArray*)getRecordLists;

2、使用

NSMutableData *webData;SimpleXMLParser *thisParser = [[SimpleXMLParser alloc] initWithData:webData];	NSString *recordHead  = @"User";[thisParser parse:recordHead];

此时解析后的数据库记录保存于Parser对象的recordStack变量中,首先获取记录条数,然后遍历每条记录。

NSInteger i = 0, nResult = [thisParser getRecordCount];for(i = 0; i < nResult; i++){	NSDictionary *recordDict = [thisParser getRecordAtIndex:i];				NSDictionary *tempDic = [recordDict objectForKey:@"tempDic"];	NSString *value = [tempDic objectForKey:@"value"];}

SimpleXMLParser类下载地址:

若无积分,博客以下回复留下Email地址。

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。

假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额任意,重在心意^_^ 

我要捐赠: 

Cocos2d-X源代码下载:

游戏官方下载:

游戏视频预览:

游戏开发博客:

游戏源代码传送

转载于:https://www.cnblogs.com/yangykaifa/p/6937569.html

你可能感兴趣的文章
qt 提示 undefined reference to `vtable for XXX ' 的另一种可能性
查看>>
洛谷P4884 多少个1?(BSGS)
查看>>
uoj#179. 线性规划
查看>>
CentOS 7.4使用yum源安装MySQL5.7
查看>>
iOS多页面传值方式之单例传值singleton
查看>>
PHP SOCKET编程(未完)
查看>>
mysql8.0.11修改root密码,其他创建用户和删除用户
查看>>
位操作——高低位交换(循环左移/右移)
查看>>
记一次easywechat企业付款问题
查看>>
HDOJ 2092 整数解(2次方程整数解公式)
查看>>
HDU 2896 简单题
查看>>
iphone开发之iphone解析xml&json-1
查看>>
AngularJS1.X学习笔记10-自定义指令(下)
查看>>
jquery 之选择符
查看>>
angular学习资源
查看>>
给熊孩子做班主任
查看>>
ZOJ 1563 Pearls(动态规划)
查看>>
扩展第三方DropDownMenu
查看>>
web前端开发的基础环境配置
查看>>
互评Alpha版本
查看>>