problema de respuesta XML
Pregunta
Traté de leer los datos de respuesta del API de Google clima, pero diéresis alemanas no se muestran correctamente. En lugar de "ö" Me "^".
Creo que el problema son las dos líneas de código:
CXMLElement *resultElement = [nodes objectAtIndex:0];
description = [[[[resultElement attributeForName:@"data"] stringValue] copy] autorelease];
¿Cómo puedo obtener los datos de resultElement sin stringValue?
PS: Yo uso TouchXML a analizar XML
Solución
Debe utilizar un NSURLConnection para obtener sus datos, supongo. Cuando reciba los datos se puede convertir a un NSString utilizando codificación adecuada. P.ej.
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
if(xmlResponse == nil){
xmlResponse = [[NSMutableString alloc] initWithData:data encoding:NSISOLatin1StringEncoding];
}
else{
NSMutableString *temp = [[NSMutableString alloc] initWithData:data encoding:NSISOLatin1StringEncoding];
[xmlResponse appendString:temp];
[temp release];
}
}
Aquí xmlResponse es la NSMutableString que se puede pasar a su analizador. He utilizado NSISOLatin1 codificación. Puede comprobar otros tipos de codificación y ver lo que le da los caracteres correctamente (NSUTF8StringEncoding debe hacerlo supongo) Usted puede comprobar la documentación del API para obtener una lista de codificaciones soportadas.