XMLParser (整理下以前写的代码)

前端之家收集整理的这篇文章主要介绍了XMLParser (整理下以前写的代码)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
#import "XMLViewController.h"

@implementation XMLViewController
//@synthesize xmlTextView;
@synthesize myTableView;
@synthesize xmlData,connection,xmlDataArray;

-(void)viewDidLoad
{
    xmlData=[[NSMutableData alloc]init];
    CGRect rect=CGRectMake(0,80,320,400);
    myTableView=[[UITableView alloc]initWithFrame:rect style:UITableViewStylePlain];
    self.myTableView.delegate=self;
    self.myTableView.dataSource=self;
    [self.view addSubview:myTableView];
}

- (void)viewDidUnload {
   
    [super viewDidUnload];
}
- (IBAction)startParseAction:(id)sender {
    NSURL *url=[NSURL URLWithString:@"http://192.168.0.110:8080/fw/index2.htm"];
    NSURLRequest *req=[NSURLRequest requestWithURL:url];
    connection=[[NSURLConnection alloc]initWithRequest:req delegate:self startImmediately:YES];
    NSLog(@"begin fetch data");
    
}
//接受数据
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [xmlData appendData:data];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSString *xmlCheck=[[NSString alloc]initWithData:xmlData encoding:NSUTF8StringEncoding];
     
    xmlDataArray=[[NSMutableArray alloc]initWithCapacity:0];
    
    NSXMLParser *parser=[[NSXMLParser alloc]initWithData:xmlData];
    [parser setShouldProcessNamespaces:NO];
    [parser setShouldReportNamespacePrefixes:NO];
    [parser setShouldResolveExternalEntities:NO];
    
    [parser setDelegate: self];
    [parser parse];
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error   
{

}

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{

    if ([elementName isEqualToString:@"student"]) {
        NSMutableDictionary *dic=[[NSMutableDictionary alloc]initWithCapacity:0];
        
        [dic setObject:[attributeDict objectForKey:@"name"] forKey:@"studentName"];
         [dic setObject:[attributeDict objectForKey:@"age"] forKey:@"studentAge"];
        [dic setObject:[attributeDict objectForKey:@"sex"] forKey:@"studentSex"];
          
        [xmlDataArray addObject:dic];
        dic=nil;
    }
}

//
-(void)parserDidEndDocument:(NSXMLParser *)parser
{
//    NSString *temp=[NSString stringWithFormat:@"%@",xmlDataArray];
//    [xmlTextView setText:temp];
    NSLog(@"success");
    [myTableView reloadData];
}

/*======================设置tableView的行数=============================*/
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    
    return [xmlDataArray count];
    
}

/*======================设置tableView每个cell的内容=============================*/

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault
                                                reuseIdentifier:@"UITableViewCell"];
    NSMutableDictionary *dic=[[NSMutableDictionary alloc]initWithCapacity:0];
    dic=[xmlDataArray objectAtIndex:indexPath.row];
    NSString *name=[NSString stringWithString:[dic objectForKey:@"studentName"]];
    NSString *age=[NSString stringWithString:[dic objectForKey:@"studentAge"]];
    NSString *sex=[NSString stringWithString:[dic objectForKey:@"studentSex"]];
    
    NSString *temp=[NSString stringWithFormat:@"name:%@ age:%@  sex:%@",name,age,sex];
    cell.textLabel.text=temp;
    
    return cell;
}
@end

猜你在找的XML相关文章