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の意味を認識せず、XMLを読み取るだけです。あなたはそれを自分で理解しなければなりません。

于 2012-11-20T14:12:31.833 に答える