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