1.首先把第三方代码拖进工程
GDataXMLNode.h和GDataXMLNode.m这两个文件放进工程里面
2.引入libxml2库文件
3.将GDataXMLNode.h文件中的这两个东西在工程中设置一下
4.因为我们引入的第三方文件是MRC的文件,所以我们还要设置一下在ARC的工程中添加MRC的文件,实现ARC和MRC混编,找到添加的文件,在后面加上-fno-objc-arc
5.无需多言,一切尽在代码中
1 #import "ViewController.h" 2 #import "Student.h" 3 #import "GDataXMLNode.h" 4 5 @interface ViewController () <NSXMLParserDelegate> 6 7 /** 8 * 存储数据的数组 9 */ 10 @property (nonatomic, strong) NSMutableArray *dataArray; 11 12 @end 13 14 @implementation ViewController 15 16 - (void)viewDidLoad { 17 [super viewDidLoad]; 18 // Do any additional setup after loading the view, typically from a nib. 19 } 20 21 - (IBAction)domParserActionXMLDocument:(id)sender { 22 23 // 第一步:引入动态库 24 25 // 1.获取文件路径 26 NSString *path = [[NSBundle mainBundle] pathForResource:@"StudentInfo_xml.txt" ofType:nil]; 27 28 29 // 2.根据路径获取data类型的数据 30 NSData *data = [NSData dataWithContentsOfFile:path]; 31 32 33 // 3.初始化存储数据的数组 34 self.dataArray = [NSMutableArray array]; 35 36 37 // 4.设置DOM解析(创建解析文档) 38 GDataXMLDocument *document = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil]; 39 40 41 // 5.获取根节点 42 GDataXMLElement *rootElement = document.rootElement; 43 44 45 // 6.遍历获取相对应的子节点 46 for (GDataXMLElement *studentElement in rootElement.children) { 47 48 Student *stu = [[Student alloc] init]; 49 50 // 遍历子节点的子节点 51 for (GDataXMLElement *stuElement in studentElement.children) { 52 53 // 根据标签给student对象赋值 54 // stuElement.name 标签的名字 55 // stuElement.stringValue 标签的值 56 // kvc赋值 57 [stu setValue:stuElement.stringValue forKey:stuElement.name]; 58 } 59 60 [self.dataArray addObject:stu]; 61 } 62 63 64 // 遍历检验 65 for (Student *stu in self.dataArray) { 66 NSLog(@"name = %@, gender = %@, age = %ld, hobby = %@", stu.name, stu.gender, stu.age, stu.hobby); 67 } 68 69 } 70 71 @end