2012-04-11 6 views
1

Ich verwende die API von Google, um das aktuelle Wetter abzurufen.XML-XCode-Attribut

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName 
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName 
attributes:(NSDictionary *)attributeDict 
{ 
    if([elementName isEqualToString:@"condition"]) 
    {  
     NSString* string = [attributeDict objectForKey:@"data"]; 
     NSLog(@"The weather is now %@", string); 
    } 
[self setUIState:ACTIVE_STATE]; 
} 

Mit dem oben genannten, bekomme ich 3 Bedingungen. Alles was ich brauche ist der Strom, wie löse ich das? Hier ist die xml code.

Ich versuche nur die "Bedingung" abzurufen, die in "current_conditions" verschachtelt ist. Vielen Dank!

+0

'wenn möchten ([element isEqualToString: @„current_conditions“])' – beryllium

+0

, dass auch genau das, was ich tat, aber löst nicht das Problem – Hexark

+0

Aber wenn Sie finde einen besseren Weg als meinen (bitte), teile ihn. – Kuba

Antwort

2

Verwenden Sie die BOOL-Variable, um zu überprüfen, ob Sie sich in den current_conditions befinden. Beispiel:

BOOL retrieveCurrentCondition;

Satz dies in Initialisierer auf NO, dann

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
    if([elementName isEqualToString:@"current_conditions"]) 
    { 
     retrieveCurrentCondition= YES; 
    } 
} 

und in didEndElement zurück zu NO.

der Zwischenzeit können Sie Methoden implementieren zu bekommen, was Sie if(retrieveCurrentCondition)

+0

danke! Es funktionierte wie ein Zauber. – Hexark