IOS XML系统自带解析
2016-06-08 17:42
579 查看
在IOS开发过程中,苹果自带XML解析功能,给用户解析XML带来啦极大的便捷,使用如下:
调用系统解析
必须遵循NSXMLParserDelegate 协议
开始解析
解析结束
解析过程
当文件遇到User元素时,创建一个字典用于接收
将符合关键字的元素d添加到字典中
得到数据关键字的值
调用系统解析
必须遵循NSXMLParserDelegate 协议
- (void)viewDidLoad { [super viewDidLoad]; //指定xml文件 NSString *path=[[NSBundle mainBundle] pathForResource:@"person.xml" ofType:nil]; //转化为二进制对象 NSData *data=[NSData dataWithContentsOfFile:path]; //为person指定初始值 NSXMLParser *parson=[[NSXMLParser alloc]initWithData:data]; //指定代理 parson.delegate=self; //解析 BOOL b=[parson parse]; if (b){ NSLog(@"解析成功"); } }
开始解析
-(void)parserDidStartDocument:(NSXMLParser *)parser { self.arr=[NSMutableArray array]; }
解析结束
-(void)parserDidEndDocument:(NSXMLParser *)parser { NSLog(@"%@",self.arr); }
解析过程
当文件遇到User元素时,创建一个字典用于接收
/*** 文档元素解析开始 (当文件遇到User元素时,创建一个字典用于接收) * @param parser 解析的对象 * @param elementName 文档里元素名称 * @param namespaceURI 命名空间 * @param qName * @param attributeDict 属性的字典 */ -(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString*)qName attributes:(NSDictionary<NSString *,NSString *> *)attributeDict { //在文档中User元素时,初始化字典 if ([elementName isEqualToString:@"User"]) { self.dicM=[NSMutableDictionary dictionary]; //添加字典元素 [self.dicM setDictionary:attributeDict]; } }
将符合关键字的元素d添加到字典中
/*** 解析文件元素的内容 * @param parser 解析对象 * @param elementName 文档里元素名称 * @param namespaceURI 命名空间 * @param qName */ -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { //判断元素的关键字,只有符合的才将元素添加到字典 if ([elementName isEqualToString:@"name"]) { [self.dicM setObject:self.str forKey:elementName]; } else if ([elementName isEqualToString:@"age"]) { [self.dicM setObject:self.str forKey:elementName]; } 只有见到User才将字典添加到集合 else if ([elementName isEqualToString:@"User"]) { [self.arr addObject:self.dicM]; } }
得到数据关键字的值
/*** 解析文件元素的内容 ** @param parser 解析对象 * @param string 显示的文件的内容 */ -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { self.str=string; }
相关文章推荐
- 此证书的签发者无效Missing iOS Distribution signing identity问题解决
- iOS view 的生命周期
- ios 判断GPS是否是在中国境内
- ios 关于正则表达式
- iOS-OC-tableview SDWebImage加载多张图片内存警告(received memory warning)
- ios 含有textfield的viewcontroller随键盘弹起而改变位置
- ios 图片库和相机选择图片界面修改为简体中文
- [IOS 开发] 格瓦拉 控制器之间的换场动画。
- iOS应用崩溃日志揭秘
- iOS监听电话来电、挂断、拨号等
- 【iOS开发】事件处理之响应链(二)
- ios开发经典语录锦集
- 第三方解决键盘遮挡问题总结(IQKeyboardManager)
- 【雕虫小计win PE】使用GHOST备份还原操作系统(转载)
- iOS单元测试UnitTest
- iOS开发 关于MD5加密的相关使用
- IOS 内支付那点事
- iOS Xcode中SVN的配置
- iOS - 二维码扫描和应用跳转
- ios开源框架--iOS-Universal-Framework的配置环境和使用