0

我需要从远程 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 操作中)?谢谢!

4

1 回答 1

2

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

XML 解析器不知道你的 XML 是什么意思,它只是把它读给你听;你必须自己理解。

于 2012-11-20T14:12:31.833 回答