2012-04-11 3 views
1

Я использую API Google для получения текущей погоды.XML XCode Атрибут

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

С вышеуказанным, я получаю 3 условия. Все, что мне нужно, это текущее, как я могу это решить? Вот xml code.

Я пытаюсь получить только «условие», которое вложено внутри «current_conditions». Благодаря!

+0

', если ([ELEMENTNAME isEqualToString: @«current_conditions»])' – beryllium

+0

Это также то, что я сделал, но не решает проблему – Hexark

+0

Но если вы найдите лучший способ, чем мой (ниже), пожалуйста, поделитесь им. – Kuba

ответ

2

Используйте переменную BOOL, чтобы проверить, находитесь ли вы в текущих условиях. Пример:

BOOL retrieveCurrentCondition;

установить это в инициализаторе, чтобы НЕТ, то

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

и didEndElement обратно в НЕТ.

Между тем вы можете реализовать методы, чтобы получить то, что вы хотите if(retrieveCurrentCondition)

+0

спасибо! Оно работало завораживающе. – Hexark