NSXMLParser 是实现的是sax方法解析xml文件。
NSXMLParser解析XML的主要工作都是靠它的代理(NSXMLParserDelegate)来实现的。所以使用时必须遵守NSXMLParserDelegate协议
创建NSXMLParser对象:
1. initWithContentsOfURL 通过NSURL创建解析器
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://lab.xxxxxx.com/xxx/xxx.xml"]];
2. initWithData 通过NSData创建解析器
NSMutableString *Strxml=[NSMutableString stringWithString:@"xml..."];
NSData *data=[NSData dataWithBytes:[Strxml UTF8String] length:[Strxml length]];
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
设置NSXMLParser对象属性:
[parser setDelegate:self];//还有一些其它属性选择设置
开始解析:
[parser parse];
实现委托方法:
// 开始解析document.
- (void)parserDidStartDocument:(NSXMLParser *)parser;
// 成功的解析完毕.
- (void)parserDidEndDocument:(NSXMLParser *)parser;
// 遇到元素的开始标签
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict;
//遇到标签包含内容字符
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
// 遇到元素的结束标签
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName;
//有严重错误,停止解析
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError;