首页 > 移动平台 > 详细

iOS 中的 xml 解析

时间:2015-09-28 13:02:00      阅读:322      评论:0      收藏:0      [点我收藏+]

在ios 中解析xml 的方法有很多种

1.苹果原生

NSXMLParser:SAX方式解析,使用简单

2.第三方框架

libxml2:纯c语言,默认包含在ios  sdk中,同时支持DOM 和 SAX 方式解析

GDataXML : DOM方式解析,由谷歌开发,基于libxml2

 

xml 解析建议方式:

大文件选用:NSXMLParser   或者 libxml2

小文件选用:GDataXML

  1 //
  2 //  ViewController.m
  3 //  04-xml解析
  4 //
  5 //  Created by jerry on 15/9/28.
  6 //  Copyright (c) 2015年 jerry. All rights reserved.
  7 //
  8 
  9 #import "ViewController.h"
 10 
 11 @interface ViewController ()<NSXMLParserDelegate>
 12 
 13 @end
 14 
 15 @implementation ViewController
 16 
 17 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
 18     [self loadData];
 19 }
 20 /**
 21  *  加载xml  数据
 22  */
 23 - (void)loadData
 24 {
 25     // 1.url
 26     NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/videos.xml"];
 27     
 28     // 2.请求
 29     NSURLRequest *request = [NSURLRequest requestWithURL:url];
 30     
 31     // 3.连接
 32     [NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc]init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
 33         // xml 解析
 34         
 35         // 1.实例化xml 解析器
 36         NSXMLParser *parser = [[NSXMLParser alloc]initWithData:data];
 37         
 38         // 2.设置代理
 39         parser.delegate = self;
 40         
 41         // 3.开始解析
 42         [parser parse];
 43         
 44         
 45     }];
 46 }
 47 #pragma mark - 代理方法
 48 /**
 49  *   1.打开文档 准备开始解析
 50  *
 51  *  @param parser <#parser description#>
 52  */
 53 - (void)parserDidStartDocument:(NSXMLParser *)parser
 54 {
 55     NSLog(@"打开文档");
 56 }
 57 
 58 /**
 59  *  2.开始节点
 60  *
 61  *  @param parser        <#parser description#>
 62  *  @param elementName   属性名称
 63  *  @param namespaceURI  <#namespaceURI description#>
 64  *  @param qName         <#qName description#>
 65  *  @param attributeDict <#attributeDict description#>
 66  */
 67 - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
 68 {
 69     NSLog(@"开始节点---%@---%@",elementName,attributeDict);
 70 }
 71 /**
 72  *  3.发现节点里面内容
 73  *
 74  *  @param parser <#parser description#>
 75  *  @param string <#string description#>
 76  */
 77 - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
 78 {
 79     NSLog(@"发现节点内容---%@",string);
 80 }
 81 /**
 82  *  4.结束节点
 83  *
 84  *  @param parser       <#parser description#>
 85  *  @param elementName  <#elementName description#>
 86  *  @param namespaceURI <#namespaceURI description#>
 87  *  @param qName        <#qName description#>
 88  */
 89 - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
 90 {
 91     NSLog(@"结束节点---%@",elementName);
 92 }
 93 /**
 94  *  5.结束文档
 95  *
 96  *  @param parser <#parser description#>
 97  */
 98 - (void)parserDidEndDocument:(NSXMLParser *)parser
 99 {
100     NSLog(@"结束文档");
101 }
102 
103 
104 
105 
106 
107 
108 
109 
110 
111 @end

 

iOS 中的 xml 解析

原文:http://www.cnblogs.com/pengpengzhang/p/4843594.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!