您的位置:首页 > 其它

DOM解析XML文件

2016-05-10 14:49 405 查看
1.首先把第三方代码拖进工程

GDataXMLNode.h和GDataXMLNode.m这两个文件放进工程里面

2.引入libxml2库文件



3.将GDataXMLNode.h文件中的这两个东西在工程中设置一下







4.因为我们引入的第三方文件是MRC的文件,所以我们还要设置一下在ARC的工程中添加MRC的文件,实现ARC和MRC混编,找到添加的文件,在后面加上-fno-objc-arc



5.无需多言,一切尽在代码中

#import "ViewController.h"
#import "Student.h"
#import "GDataXMLNode.h"

@interface ViewController () <NSXMLParserDelegate>

/**
*  存储数据的数组
*/
@property (nonatomic, strong) NSMutableArray *dataArray;

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (IBAction)domParserActionXMLDocument:(id)sender {

// 第一步:引入动态库

// 1.获取文件路径
NSString *path = [[NSBundle mainBundle] pathForResource:@"StudentInfo_xml.txt" ofType:nil];

// 2.根据路径获取data类型的数据
NSData *data = [NSData dataWithContentsOfFile:path];

// 3.初始化存储数据的数组
self.dataArray = [NSMutableArray array];

// 4.设置DOM解析(创建解析文档)
GDataXMLDocument *document = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil];

// 5.获取根节点
GDataXMLElement *rootElement = document.rootElement;

// 6.遍历获取相对应的子节点
for (GDataXMLElement *studentElement in rootElement.children) {

Student *stu = [[Student alloc] init];

// 遍历子节点的子节点
for (GDataXMLElement *stuElement in studentElement.children) {

// 根据标签给student对象赋值
// stuElement.name 标签的名字
// stuElement.stringValue 标签的值
// kvc赋值
[stu setValue:stuElement.stringValue forKey:stuElement.name];
}

[self.dataArray addObject:stu];
}

// 遍历检验
for (Student *stu in self.dataArray) {
NSLog(@"name = %@, gender = %@, age = %ld, hobby = %@", stu.name, stu.gender, stu.age, stu.hobby);
}

}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: