2010-10-11 5 views
0

Bonjour, je rencontre des problèmes lors de l'analyse XML, je n'arrive pas à obtenir la valeur de cette variable particulière. Mon code est le suivant:Problème lors de l'analyse XML

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    NSString *feedURLString = @"http://www.google.com/ig/api?weather=new+york,ny"; 
    NSURL *URL=[[NSURL alloc] initWithString:feedURLString]; 
    NSString *data=[[NSString alloc] initWithContentsOfURL:URL 
     encoding:NSASCIIStringEncoding error:nil]; 
    Element* root = [Element parseXML: data]; 
    NSArray* resultnode = [root selectElements:@"forecast_information"]; 
    for(Element *elementEntry in resultnode) { 
     NSString *city_Data = [[NSString alloc]init ]; 
     //if([elementEntry isEqualToString:@"city_data"]) 
     city_Data = [[elementEntry selectElement:@"city data"]contentsText]; 
     NSLog(@"city_Data======>>>>>%@",city_Data); 
    } 
} 

ici je veux la valeur de la balise de données de la ville qui a la valeur comme New York, NY chaque fois que j'imprime la valeur de la chaîne, il est toujours nul. Thansk à l'avance.

+0

Si vous allez travailler avec XML en profondeur, je suggère d'utiliser TouchXML, http://github.com/schwa/TouchXML –

Répondre

1

Les nœuds XML n'ont jamais d'espaces dans leurs noms. Vous voulez charger le Element nommé "ville" et ce nœud contient un attribut nommé "données".

Je n'ai pas vérifié votre code en détail ... j'espère que le reste fonctionne.

+0

j'ai essayé avec la "ville", mais n'a pas eu de succès, vous pouvez jeter un oeil à l'URL qui est "www.google.com/ig/api?weather=new+york,ny", dites-moi simplement ce qu'il faut changer dans cette ligne de code city_Data = [[elementEntry selectElement: @ "city data"] contentsText]; – mrugen

+0

Si vous ouvrez le fichier XML, vous remarquerez la structure avec ... ... et enfin à l'intérieur. Vous devez donc normalement parcourir cet arbre pour trouver le nœud que vous recherchez. Ce noeud a un attribut nommé data. Regardez aussi la référence de la classe NSXMLParser d'Apple. Je ne suis même pas sûr du cadre que vous essayez d'utiliser ici. –

+0

Ici, j'utilise libxml pouvez-vous juste il comprendre où je dois faire des changements. – mrugen