第二部分 解析XML
采用SDK自带的类NSXMLParser来解析。NSXMLParser这个类初始化有两种方法:
(1)initWithContentsOfURL 通过NSURL创建解析器
(2)initWithData 通过NSData创建解析器
在解析之前,你要声明委托:
NSXMLParser *myParser=[[NSXMLParser alloc]initWithData:xmlData];
[parse setDelegate:self];
这里的self指的是你的viewController,所以你的viewController要实现这个协议:
@interface LZYViewController : UIViewController<NSXMLParserDelegate>
然后调用解析方法:
BOOL flag=[myParser parse];//开始解析
if(flag){
NSLog(@"开始解析");
}
另外要实现协议的几个方法如下:
-(void)parserDidStartDocument:(NSXMLParser *)parser{//开始解析前的初始化工作
array=[[NSMutableArray alloc]init];//初始化数组
}
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
NSLog(@"看看这个是什么%@",elementName);//这个方法打印的内容都是属性名称
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{//这个方法打印的就是具体的内容了
NSLog(@"据说这是内容%@",string);
[array addObject:string];
}
-(void)parserDidEndDocument:(NSXMLParser *)parser{//解析结束,通常做的操作是保存数据,或者展示数据
if ([array count]>0) {
areaName.text=[array objectAtIndex:1];
wd.text=[NSString stringWithFormat:@"%@%@",[array objectAtIndex:5],[array objectAtIndex:6]];
we.text=[NSString stringWithFormat:@"%@%@%@",[array objectAtIndex:7],[array objectAtIndex:8],[array objectAtIndex:9]];
}
}