NSXMLParser解析XML

通过ios自带的NSXMLParser来解析,效率比较慢,不推荐使用,这里只记录一下解析方法。

1。新建util类,实现NSXMLParserDelegate协议,(解析时候回调使用)

@interface MyXMLParseUtil :NSObject<NSXMLParserDelegate>

-(void) parseXML;

2.使用NSXMLParser来读取制定xml,可以是rul,或是本地文件

-(void) parseXML{
    /*
//这一句是读取web的xml,
    NSString *address = @"http://data.3g.sina.com.cn/api/index.php?page=1&test=1&wm=b100&cid=43";
    NSURL * url = [[NSURL alloc] initWithString:address];    
    NSData *data = [[NSData alloc] initWithContentsOfURL:url]; 
    /*/
     //读取本地xml
    NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"xml"];
    NSData *data = [[NSData alloc] initWithContentsOfFile:path];
     //*/
    
    NSLog(@"data: %@",data);
    NSXMLParser *m_parser = [[NSXMLParser alloc] initWithData:data];
    //设置该类本身为代理类,即该类在声明时要实现NSXMLParserDelegate委托协议
    [m_parser setDelegate:self];  //设置代理为本地
    
    BOOL flag = [m_parser parse]; //开始解析
    if(flag) {
        NSLog(@"获取指定路径的xml文件成功");
    }else{
        NSLog(@"获取指定路径的xml文件失败");
    }

}


3.重写NSXMLParserDelegate相应的方法来解析xml,这里简单说些比较重要的方法:

- (void)parserDidStartDocument:(NSXMLParser *)parser{ //开始解析调用
    NSLog(@"...parserDidStartDocument...");
}
- (void)parserDidEndDocument:(NSXMLParser *)parser{ //结束解析调用
     NSLog(@"...parserDidEndDocument...");
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{ //遇到start tag调用
     NSLog(@"...parser:didStartElement:namespaceURI:qualifiedName:attributes:...");
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值