Dom解析文件

1.导入GDataXMLNode第三方框架
2.进行环境配置
3.在appdelegata中设置导航以及根目录
4.viewcontroller中代码如下

//
//  ViewController.m
//  DOM解析分区
//


#import "ViewController.h"
#import "GDataXMLNode.h"
#import "Student.h"
@interface ViewController ()<UITableViewDelegate , UITableViewDataSource>
{
    UITableView *tbv;
    NSMutableArray *array;
    NSMutableArray *ClassNameArr;
}
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    array = [NSMutableArray new];
    ClassNameArr = [NSMutableArray new];
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"hhhh" style:UIBarButtonItemStylePlain target:self action:@selector(abc)];
    tbv = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped];
    tbv.delegate = self;
    tbv.dataSource = self;
    [self.view addSubview:tbv];
}
- (void)abc{
    NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/xml.xml"];
    NSData *data = [[NSData alloc] initWithContentsOfURL:url];
    GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil];
    GDataXMLElement *rootElement = [doc rootElement];

    NSArray *ClassArr = [rootElement elementsForName:@"class"];

    for (GDataXMLElement *ClassElement in ClassArr) {
        NSString *ClassStr = [[ClassElement attributeForName:@"a_name"]stringValue];
        [ClassNameArr addObject:ClassStr];

        NSArray *str1 = [ClassElement elementsForName:@"student"];

        NSMutableArray *arr1 = [NSMutableArray new];
        for (GDataXMLElement *element in str1) {
            Student *s = [Student new];
            s.name = [[[element elementsForName:@"name"] firstObject] stringValue];
            s.sex = [[[element elementsForName:@"sex"] firstObject] stringValue];
            s.age = [[[element elementsForName:@"age"] firstObject] stringValue];
            [arr1 addObject:s];

        }
        [array addObject:arr1];
    }
    [tbv reloadData];
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return array.count;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return [array[section]count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *oj = @"34";
    UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:oj];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:oj];
    }
    cell.textLabel.text = [NSString stringWithFormat:@"%@%@%@",[array[indexPath.section][indexPath.row]name] , [array[indexPath.section][indexPath.row]age] , [array[indexPath.section][indexPath.row]sex]];
    return cell;
}
//-(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath{
//    return 30;
//}
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    return ClassNameArr[section];
}
@end

猜你喜欢

转载自blog.csdn.net/chuck_phonics/article/details/81782618