郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。
假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主。捐赠数额任意,重在心意^_^
我要捐赠:
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源代码下载:
游戏官方下载:
游戏视频预览:
游戏开发博客:
游戏源代码传送: