您的位置:首页 > 理论基础 > 计算机网络

网络请求与解析实例

2011-08-08 15:06 447 查看
-(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]];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网络 解析 NSXMLParser