NSXMLParser se detiene justo después de comenzar

Estoy practicando RESTKit, por lo que estoy creando un cliente Dribbble para familiarizarme con REST, obtengo la respuesta XML con éxito, pero cuando uso NSXMLParser para analizarlo, inicia un registro y luego se detiene inmediatamente después, ¿cómo puedo solucionarlo? , o simplemente hacer que sea más fácil con el XML clasificar qué elemento es cuál, y luego ponerlo en mi tabla?

aquí está el código:

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
    NSLog(@"I just found a start tag for %@",elementName);

}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
    NSLog(@"the parser just found this text in a tag:%@",string);
}

-(void)parserDidStartDocument:(NSXMLParser *)parser {
    NSLog(@"starting");
}

-(void)parserDidEndDocument:(NSXMLParser *)parser {
    NSLog(@"end");
}

-(IBAction)test {
    [[RKClient sharedClient] get:@"/shots/popular" delegate:self];
}

-(void)request:(RKRequest *)request didLoadResponse:(RKResponse *)response {
    if ([request isGET]) {

        NSLog(@"Retrieved XML: %@", [response bodyAsString]);
        NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:[response body]];
        [xmlParser setDelegate:self];
        [xmlParser parse];
    }
    else if ([request isPOST]) {


        if ([response isJSON]) {

            NSLog(@"Got a JSON response back from our POST!");
        }


    }
    else if ([request isDELETE]) {

        if ([response isNotFound]) {
            NSLog(@"The resource path '%@' was not found.", [request resourcePath]);
        }


    }
}

preguntado el 02 de julio de 12 a las 00:07

Parece que puede haber un error. deberías implementar parser:parseErrorOccurred: y mira lo que dice. -

lo NSLogged, obtuve "ocurrió un error: Error Domain=NSXMLParserErrorDomain Code=4" No se pudo completar la operación. (NSXMLParserErrorDomain error 4.)"", ¿cómo soluciono entonces? Realmente no sé mucho sobre NSXMLParser. -

1 Respuestas

El error que está recibiendo del analizador es NSXMLParserEmptyDocumentError. Parece que no está obteniendo la respuesta que espera del servidor; esto no es un problema con el analizador.

Debe verificar que no se produzca ningún error con la conexión o la respuesta, y que el resultado sea realmente un documento XML.

Respondido 02 Jul 12, 02:07

en el código, lo registro, NSLog(@"XML recuperado: %@", [response bodyAsString]); y tiene el xml, y veo la información que necesito, así que uso NSXMLParser con el cuerpo, y el cuerpo debe tener los mismos datos que la cadena, pero no la cadena. NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:[response body]] y bodyAsString no es nulo, ¿entonces el cuerpo no debería estar vacío? - Maximiliano Litteral

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.