使用AFNetworking和NSXMLParser解析xml

时间:2012-11-20 13:29:41

标签: xml xcode nsxmlparser

我需要从远程URL解析xml字符串,我想使用AFNetworking。这是我的代码:

NSURL *url2 = [NSURL URLWithString:@"REMOTEXMLURL"];
NSURLRequest *request2 = [NSURLRequest requestWithURL:url2];

AFXMLRequestOperation *operation2 = [AFXMLRequestOperation XMLParserRequestOperationWithRequest:request2
                                        success:^(NSURLRequest *request2, NSHTTPURLResponse *response2, NSXMLParser *XMLParser) {
                                            NSLog(@"TESTING PARSING");
                                            [XMLParser setDelegate:self];
                                            [XMLParser parse];
                                        } failure:^(NSURLRequest *request2, NSHTTPURLResponse *response2, NSError *error2, NSXMLParser *XMLParser) {
                                        NSLog(@"%@", [error2 userInfo]);
                                        }];
[operation2 start];

这是对的吗?现在我有* XMLParser,我可以避免使用NSXMLParser委托方法,例如:

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

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

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

或者我被限制使用它?换句话说,使用AFNetworking和AFXMLRequestOperation初始化的* XMLParser对象必须传递给委托方法,还是可以用其他方式解析它(如AFJSONRequestOperation,进入AFNetworking操作)?谢谢!

1 个答案:

答案 0 :(得分:2)

NSXMLParser需要一个委托。如果你想使用NSXMLParser,并希望你的类成为它的委托,你需要实现委托方法来理解你的XML。

XML解析器不知道XML的含义是什么,它只是向您读取;你必须自己理解。