XML DOM 解析

DOM 是谷歌封装的XML 解析第三方 需要导入
GDataXMLNode.h 和 GDataXMLNode.m


写在本地的XML 文件的内容

XML DOM 解析_第1张图片
Paste_Image.png

引入.h 属性里面创建名为 dataArray 的可变数组

    //[NSBundle mainBundle] 代表的是左面那个文件夹
    //pathForResource:@"文件名" ofType:@"文件格式"
    NSString *path = [[NSBundle mainBundle]pathForResource:@"XML_stu" ofType:@"txt"];
    
    //通过文件路径,创建一个NSData对象
    NSData *data = [NSData dataWithContentsOfFile:path];

    //初始化可变数组
    _dataArray = [NSMutableArray array];
    
    NSError *error = nil;

    // GDataXMLDocument XML 的DOM解析使用类
    // 第一个参数  解析的data对象
    // 第二个参数  一般就是0
    // 第三个参数  error 信息
    GDataXMLDocument *document = [[GDataXMLDocument alloc]initWithData:data options:0 error:&error];
    
   
    //获取到XML数据根节点
    //获取到跟节点里面所有的数据,也就是说 获取到students里面包含的所有的东西
    GDataXMLElement *rootElement = [document rootElement];
    
//    NSLog(@"%@",rootElement);
    
    for (GDataXMLElement *subElement in rootElement.children) {
   
        //这里获取到的subElement保存的是student 标签里面的内容,所以在这里创建对象
        
        Student *student = [Student new];
        
        for(GDataXMLElement *element in subElement.children){
        // element 保存的就是 student标签的所有子标签
        // 根据标签的名字,给属性赋值
//           element.name 表示标签名字
//        element.stringValue 表示标签的值
            
//          tu.name,stu.gender,stu.hobby,stu.age);
            
            
      // 判断名字
            if ([element.name isEqualToString:@"name"]){
                student.name = element.stringValue;
            }else if ([element.name isEqualToString:@"hobby"]){
                student.hobby = element.stringValue;
            }else if ([element.name isEqualToString:@"gender"]){
                student.gender = element.stringValue;
            }else if ([element.name isEqualToString:@"age"]){
                student.age = [element.stringValue integerValue];
            }
            
        }
        [self.dataArray addObject:student];
    }for (Student *stu in self.dataArray) {
        NSLog(@"%@  %@ %@  %ld", stu.name, stu.hobby, stu.gender, stu.age);
    }

你可能感兴趣的:(XML DOM 解析)