美文网首页
NSXMLParser解析多分区

NSXMLParser解析多分区

作者: 法库德 | 来源:发表于2017-09-19 08:23 被阅读0次

    {

    NSString *new;

    NSMutableDictionary *dic;

    NSMutableArray *arr;

    Model *mo;

    UITableView *tab;

    }

    #define MAC @"http://127.0.0.1/LOL.xml"

    {    [super viewDidLoad];    //    NSURL *url=[NSURL URLWithString:MAC];    NSURLSession *see=[NSURLSession sharedSession];        NSURLSessionDataTask*tas=[see dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {        NSXMLParser *xm=[[NSXMLParser alloc]initWithData:data];        xm.delegate=self;        [xm parse];    }];    [tas resume];            tab=[[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStyleGrouped];    tab.dataSource=self;    tab.delegate=self;    [self.view addSubview:tab];    }//开始- (void)parserDidStartDocument:(NSXMLParser *)parser;{    //初始化字典    dic=[[NSMutableDictionary alloc]init];        }//结束- (void)parserDidEndDocument:(NSXMLParser *)parser;{    //刷新表格        [tab reloadData];    }- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName attributes:(NSDictionary*)attributeDict;

    {

    if ([elementName isEqualToString:@"a"])

    {

    //准备Key==英雄种类

    NSString*str=[attributeDict objectForKey:@"king"];

    //准备个数组

    arr=[[NSMutableArray alloc]init];

    //设置字典key和  值

    [dic setObject:arr forKey:str];

    }

    else if ([elementName isEqualToString:@"fen"])

    {

    mo=[[Model alloc]init];

    [arr addObject:mo];

    }

    new=elementName;

    }

    - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName;

    {

    new=nil;

    }

    - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string;

    {

    if ([new isEqualToString:@"name"])

    {

    mo.name=string;

    }

    else if ([new isEqualToString:@"age"])

    {

    mo.age=string;

    }

    }

    -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

    {

    return dic.count;

    }

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;

    {

    NSString *key=[dic.allKeys objectAtIndex:section];

    return [[dic objectForKey:key] count];

    }

    -(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    {

    static NSString *str4=@"cell";

    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:str4];

    if (cell==nil)

    {

    cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:str4];

    }

    NSString *key=[dic.allKeys objectAtIndex:indexPath.section];

    cell.textLabel.text=[[[dic objectForKey:key]objectAtIndex:indexPath.row] name];

    cell.detailTextLabel.text=[[[dic objectForKey:key]objectAtIndex:indexPath.row] age];

    return cell;

    }

    -(NSString*)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

    {

    return [dic.allKeys objectAtIndex:section];

    }

    相关文章

      网友评论

          本文标题:NSXMLParser解析多分区

          本文链接:https://www.haomeiwen.com/subject/gioisxtx.html