2013-02-15 8 views
0

Я новичок в Objective C, и я использую помощник, который возвращает полезную нагрузку XML из веб-службы в качестве NSXMLParser. Мне нужно получить эту полезную нагрузку либо как NSString XML, либо как объект NSData, чтобы я мог использовать его в другой библиотеке, которая преобразует полезную нагрузку в NSDictionary.Вывод строки из NSXMLParser

Есть ли простой способ преобразования этого XML в строку? Из документов я вижу, что я могу написать собственный построитель строк, используя события NSXMLParser, но это похоже на повторное создание колеса по сравнению с работой с XML на других языках.

+2

Это звучит как может быть, вы должны просто обойти помощника и принести XML из веб-службы самостоятельно. – bdesham

+1

Вам почему-то нужно использовать этого конкретного помощника? То, как я это сделаю, будет использовать «NSURLConnection» - метод «NSURLConnectionDelegate» «-connectionDidReceivedData:» может быть реализован так, чтобы добавить данные в экземпляр «NSMutableData» - вы могли бы передать это в свою другую библиотека –

+0

Да, все, кажется, говорят, чтобы пропустить библиотеку (это AFXMLRequestOperation). Я это сделаю. Интересно, почему библиотека возвращает парсер, а не строку ... ну ладно. – Jelling

ответ

0

Вы можете преобразовать NSMutableData в строку:

Вы отправляете запрос:

conexion = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; 
    if (conexion) { 
     webData = [NSMutableData data]; 
    } 

Тогда вы разбора WebData в строку. В этой функции: connectionDidFinishLoading

NSString *XML = [[NSString alloc] 
        initWithBytes: [webData mutableBytes] 
        length:[webData length] 
        encoding:NSUTF8StringEncoding]; 

Если необходимо отобразить результат

NSLog(@"%@", XML); 
1

Будет ли это работать на вас?

NSString *googleString = @"http://www.google.com"; 
NSURL *googleURL = [NSURL URLWithString:googleString]; 
NSError *error; 
NSString *googlePage = [NSString stringWithContentsOfURL:googleURL 
               encoding:NSASCIIStringEncoding 
                error:&error]; 

здесь Reading HTML content from a UIWebView

Здесь вы должны быть в состоянии скрытой в NSXMLParser или NSData, но если вы сделаете этот запрос к сервису он должен вернуть XML в виде строки.