Search code examples
iphoneobjective-ciosios4

XML parser issue with yahoo weather API


I am stuck in how to parse this kind of XML (with same element name)

<yweather:forecast day="Fri" date="18 Dec 2009" low="49" high="62" text="Partly Cloudy" code="30" />
<yweather:forecast day="Sat" date="19 Dec 2009" low="49" high="65" text="Partly Cloudy" code="30" />

Link to full xml response: http://developer.yahoo.com/weather/

I used this XML parser method

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
if([elementName isEqualToString:@"yweather:forecast"]) {
    if(_data1) {
        [_data1 release];
    }

    _data1 = [attributeDict retain];
}

if([elementName isEqualToString:@"yweather:forecast"]) {
    if(_data2) {
        [_data2 release];
    }

    _data2 = [attributeDict retain];
}
}  

What I want is weather info for friday into data1 Dictionay & weather info for satday into data2 dictionary

But currently I am getting only for one day (last element name)


Solution

  • Create an array and do something like this

    if([elementName isEqualToString:@"yweather:forecast"]) {
        [array addObject:attributeDict];
    }
    

    This array will hold your data for all the days