- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSString *xmlString = [[[NSString alloc] initWithBytes:[webDatamutableBytes] length:[webData length] encoding:NSUTF8StringEncoding]retain];
if (xmlParser)
{
[xmlParser release];
}
xmlParser = [[NSXMLParser alloc] initWithData:webData];
[xmlParser setDelegate:self];
[xmlParser setShouldResolveExternalEntities:YES];
[xmlParser parse];
}
bool flagNow = YES;
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString*)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
getCurrentElement = elementName;
[getCurrentElement retain];
if ([elementName isEqualToString:@"yweather:condition"])//获取天气的信息
{
self.Dic_weathCondition = attributeDict;
currentWeatherValue = [[[NSString stringWithFormat:@"%@",[attributeDict objectForKey:@"text"]] uppercaseString] retain];
currentTempValue = [[[NSString stringWithFormat:@"%@",[attributeDict objectForKey:@"temp"]] uppercaseString] retain];
NSLog(@"currentWeatherValue = %@, currentTempValue = %@",[attributeDict objectForKey:@"text"],[attributeDict objectForKey:@"temp"]);
}
if ([elementName isEqualToString:@"yweather:forecast"])
{
if (flagNow == YES)
{
self.Dic_weathForecast = attributeDict;
flagNow = NO;
NSString *stringWeather = [NSStringstringWithFormat:@"%@",[attributeDict objectForKey:@"text"]];
NSString *stringHighTemp = [NSStringstringWithFormat:@"%@",[attributeDict objectForKey:@"high"]];
NSString *stringLowTemp = [NSStringstringWithFormat:@"%@",[attributeDict objectForKey:@"low"]];
NSLog(@"stringWeather= %@,stringHighTemp = %@,stringLowTemp = %@",stringWeather,stringHighTemp,stringLowTemp);
return ;
}
else
{
flagNow = YES;
}
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString*)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if (qName)
{
elementName = qName;
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString*)string
{
if ([[getCurrentElement lowercaseString]isEqualToString:@"woeid"])
{
getwoeidValue = string; //获取woeid的值
if (getwoeidValue.length>0)
{
NSString *URLString = [NSStringstringWithFormat:URL_FORECAST,getwoeidValue, @"c"];
request = [NSURLRequest requestWithURL:[NSURLURLWithString:URLString]cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
urlConn = [[NSURLConnection alloc]initWithRequest:request delegate:self];
if (urlConn)
{
webData = [[NSMutableData alloc] init];
}
}
[getwoeidValue retain];
}
}