調べたらいっぱい出てくるんですけど、若干やり方変わったようなのでメモ。
何も考えずAFXMLParserとか使うとNSXMLParserが返ってくるので若干その後の処理が面倒になりそうな様子。
#import "XMLParser.h" #import <AFNetworking/AFNetworking.h> #import <AFOnoResponseSerializer/AFOnoResponseSerializer.h> #import <Ono/Ono.h> @implementation XMLParser // method: 1 - (void) parseXMLUsingAFNetworkingAndOnoFirst: (NSString *)url { AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSerializer = [AFOnoResponseSerializer XMLResponseSerializer]; [manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, ONOXMLDocument *responseDocument) { // ONOXMLDocument NSLog(@"responseDocument: %@", [responseDocument class]); // ref. https://github.com/AFNetworking/AFOnoResponseSerializer } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"failure: %@", error); }]; } // method: 2 - (void) parseXMLUsingAFNetworkingAndOnoSecond: (NSString *)url { AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSerializer = [AFHTTPResponseSerializer serializer]; [manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { // _NSInlineData NSLog(@"responseObject: %@", [operation.responseData class]); // HTMLDocumentWithDataとか適当に } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"failure: %@", error); }]; } // NSXMLParser使う場合 - (void) parseXMLUsingAFNetworking: (NSString *)url { AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSerializer = [AFXMLParserResponseSerializer serializer]; [manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { // NSXMLParser NSLog(@"responseObject: %@", [responseObject class]); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"failure: %@", error); }]; } @end
どうでも良いがobj-cのシンタックスハイライトが微妙すぎて笑える。
久々にブログ書いて疲れたので大した説明もなしで終わり。