-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
NSLog(@"@@@@@@@@@@搜索动作开始向web发请求@@@@@@@@@@");
[self.searchBar resignFirstResponder];
NSString *search = searchBar.text;
NSString *urlString = [@"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=" stringByAppendingString:search];
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60.0];
self.data = [[NSMutableData data]retain];
[NSURLConnection connectionWithRequest:request delegate:self];
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
NSLog(@"@@@@@@@@@@收到Web服务器的响应@@@@@@@@@@");
[data setLength:0];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)incomingData{
NSLog(@"@@@@@@@@@@Web服务器返回的数据如下@@@@@@@@@@");
NSLog(@"%@",incomingData);
[data appendData:incomingData];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
NSLog(@"@@@@@@@@@@对一个XML元素开始解析@@@@@@@@@@");
NSXMLParser *paser = [[NSXMLParser alloc]initWithData:data];
[paser setDelegate:self];
Elements = [NSMutableArray arrayWithCapacity:0];
[paser parse];
[paser release];
[data release];
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
NSLog(@"Query failed with error : %@",[error localizedDescription]);
[data release];
}
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict{
NSLog(@"@@@@@@@@@@对一个XML元素开始解析@@@@@@@@@@");
Element = @"";
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName{
NSLog(@"@@@@@@@@@@对一个XML元素完成解析@@@@@@@@@@");
[Elements addObject:Element];
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
NSLog(@"@@@@@@@@@@@解析过程中拼接字符串@@@@@@@@@@@@");
NSLog(@"%@",string);
Element = [Element stringByAppendingString:string];
}
-(void)parserDidEndDocument:(NSXMLParser *)parser{
NSLog(@"@@@@@@@@@@@@@@@打印最后的数组@@@@@@@@@@@@@");
NSLog(@"%@",Elements);
city.text = [[[Elements objectAtIndex:0] stringByAppendingString:@" "] stringByAppendingString:[Elements objectAtIndex:1]];
date.text = [Elements objectAtIndex:6];
detail.text = [[[Elements objectAtIndex:10] stringByAppendingString:@"\n"] stringByAppendingString:[Elements objectAtIndex:11]];
}
转载于:https://blog.51cto.com/3426724/634240