xml数据解析

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    //准备网络的字符串数据

    NSString *urlStr = @"http://flash.weather.com.cn/wmaps/xml/beijing.xml";

    //把字符串类型的网址转化为NSURL类型

    NSURL *url = [NSURL URLWithString:urlStr];

    //使用URL实例化网络请求实例

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    //同步读取到网络上的数据

    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

    //实例化一个具体的解析类对象

    NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:data];

    

    //设置解析代理对象

    xmlParser.delegate = self;

    //调用方法开始解析xml文件

    [xmlParser parse];

}

#pragma mark -NSXMLParserDelegate

#pragma mark -文档开始读取

- (void)parserDidStartDocument:(NSXMLParser *)parser

{

    //实例化存储数据的数组

    self.arrList = [NSMutableArray array];

}

#pragma mark -解析标签开始

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict

{

    //首先用属性fromTagFlag获取elementName,供后面使用

    self.formTagFlag = elementName;

    //因为数据都是存储在属性中的,全部存储在了attributeDict里面了,在这里直接打印下

    NSLog(@"%@",attributeDict);

}

#pragma mark -获取标签数据对应的数据

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

{

    //因为数据迪欧存储在了属性值中,所有不需要解析字标签

}

#pragma mark -文档结束读取

- (void)parserDidEndDocument:(NSXMLParser *)parser

{

    //打印获取到的数据的数组

    NSLog(@"%@",self.arrList);

}