EN: Поскольку responseObject
является NSXMLParser
экземпляр, вы не можете рассматривать его как строку! Вы должны реализовать NSXMLParserDelegate
обработчику xml parser progress!
CN: responseObject 返回 的 是 NSXMLParser 实例, 你 必须 实现 NSXMLParserDelegate 协议 才能 处理 该 xml 字符串! 骚 年! :-)
раствор 1: использовать NSXMLParser для парсера
[manager GET:@"http://openapi.aibang.com/search?app_key=f41c8afccc586de03a99c86097e98ccb&city=%E5%8C%97%E4%BA%AC&q=%E9%A4%90%E9%A6%86" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSXMLParser *XMLParser = (NSXMLParser *)responseObject;
[XMLParser setShouldProcessNamespaces:YES];
XMLParser.delegate = self;
[XMLParser parse];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
раствор 2: использовать GDataXML для синтаксического анализа (гораздо проще)
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager GET:@"http://openapi.aibang.com/search?app_key=f41c8afccc586de03a99c86097e98ccb&city=%E5%8C%97%E4%BA%AC&q=%E9%A4%90%E9%A6%86" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
GDataXMLDocument *doc = [[GDataXMLDocument alloc]initWithData:responseObject encoding:0 error:nil];
NSLog(@"%@",doc.rootElement);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
谢谢. 我 决定 还是 尽量 用 json 吧, xml 看起来 好 麻烦. –