iOS 链接webservice(2)

第二部分 解析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]];

    }

}






你可能感兴趣的:(ios,webservice,String,化工,interface,attributes)