2010-05-27 9 views
0

J'ai essayé de lire les données de réponse de google weather api, mais les trémas allemands ne sont pas affichés correctement. Au lieu de "ö" j'obtiens "^".Problème de réponse XML

Je pense que le problème sont ces deux lignes de code:

CXMLElement *resultElement = [nodes objectAtIndex:0]; 
description = [[[[resultElement attributeForName:@"data"] stringValue] copy] autorelease]; 

Comment puis-je obtenir des données sur resultElement sans stringValue?

PS: J'utilise TouchXML pour analyser xml

+0

Veuillez publier l'URL à partir de laquelle vous essayez de lire les données. – Jim

+0

#define GOOGLE_WEATHER_SERVICE @ "http://www.google.com/ig/api?weather=%@&hl=de" C'est l'URL mais j'ai déjà testé l'URL. La réponse xml est correcte avec ö –

Répondre

2

Vous devez utiliser un NSURLConnection pour obtenir vos données, je suppose. Lorsque vous recevez les données, vous pouvez les convertir en NSString en utilisant un encodage approprié. Par exemple.

- (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]; 
    } 

} 

Ici xmlResponse est le NSMutableString que vous pouvez transmettre à votre analyseur. J'ai utilisé l'encodage NSISOLatin1. Vous pouvez vérifier d'autres types d'encodage et voir ce qui vous donne les caractères correctement (NSUTF8StringEncoding devrait le faire je suppose). Vous pouvez vérifier le doc API pour une liste des encodages supportés.