{
NSMutableArray *arr;
Model *mod;
//記錄開(kāi)始標(biāo)簽
NSString *new;
UITableView *tab;
}
#define MAC @"http://127.0.0.1/156.xml"
{? ? [super viewDidLoad];? ? ? ? NSURL *url=[NSURL URLWithString:MAC];? ? ? ? NSURLSession *se=[NSURLSession sharedSession];? ? NSURLSessionTask *task=[se dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {? ? ? ? ? ? ? ? //sax解析? ? ? ? NSXMLParser *par=[[NSXMLParser alloc]initWithData:data];? ? ? ? //設(shè)置代理? ? ? ? par.delegate=self;? ? ? ? //開(kāi)始解析? ? ? ? [par parse];? ? }];? ? //開(kāi)始請(qǐng)求? ? [task resume];? ? ? ? tab=[[UITableView alloc]initWithFrame:CGRectMake(0, 30, self.view.frame.size.width,self.view.frame.size.height)];? ? tab.dataSource=self;? ? tab.delegate=self;? ? [self.view addSubview:tab];? ? ? ? ? ? }//開(kāi)始解析自動(dòng)觸發(fā)- (void)parserDidStartDocument:(NSXMLParser *)parser;{? ? //初始化? ? arr=[[NSMutableArray alloc]init];}//遇到開(kāi)始標(biāo)簽自動(dòng)觸發(fā)- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName attributes:(NSDictionary*)attributeDict;
{
if ([elementName isEqualToString:@"stu"]) {
//初始化對(duì)象
mod=[[Model alloc]init];
//添加數(shù)組
[arr addObject:mod];
}
//記錄開(kāi)始標(biāo)簽
new=elementName;
}
//遇到內(nèi)容自動(dòng)回調(diào)--空格或回車(chē)也會(huì)當(dāng)做內(nèi)容回調(diào)
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string;
{
if ([new isEqualToString:@"name"])
{
mod.name=string;
}
else if ([new isEqualToString:@"age"])
{
mod.age=string;
}
}
//遇到結(jié)束標(biāo)簽
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName;
{
//
new=nil;
}
//解析完畢
- (void)parserDidEndDocument:(NSXMLParser *)parser;
{
//刷新表格
[tab reloadData];
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
{
return? arr.count;
}
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *str=@"cell";
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:str];
if (cell==nil)
{
cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:str];
}
Model*m=arr[indexPath.row];
cell.textLabel.text=m.name;
cell.detailTextLabel.text=m.age;
return cell;
}