IOS -----> XML_DOM

XML中的DOM解析器解析速度比SAX解析器要快,但是如果你的xml数据出错,将直接报错,不会告诉你错误出在哪里

使用DOM解析器需要第三方类

此处我们使用GDataXMLNode(百度可以搜到哦)


上一篇我已经介绍了自定义CELL以及tableView

这一次非常简单,只要在rootViewController中引入第三方的头文件,已经

自定义一个方法

-(void)domParserAttributes{
//获取xml路径
 NSString *str=[[NSBundle mainBundle] pathForResource:@"citys" ofType:@"xml"];
//获得数据
 NSData *data=[NSData dataWithContentsOfFile:str];
    NSError *error=Nil;

//第三方类的方法
 GDataXMLDocument *docu=[[GDataXMLDocument alloc] initWithData:data options: GDataXMLDocumentKind error:&error];
    if (error) {
        NSLog(@"error=%@",error);
    }
//rootElement是根节点名字
 GDataXMLElement *element=[docu rootElement];
    //获得根节点的孩子
    GDataXMLElement *citys=[[element children] lastObject];
//然后把孩子们存进数组
  NSArray *cityArray=[citys children];
    
    
    
    //遍历数组
    for (GDataXMLElement * element2 in cityArray) {
        
        DomModel *model=[[DomModel alloc] autorelease];
        [_arr addObject:model];
      
    
        NSArray * descripte=[element2 children];
//遍历根节点的子节点
 for (GDataXMLElement * value in descripte) {
            
            if ([[value name] isEqualToString:@"name"]) {
                //获取同一个Model
              DomModel *dom= [_arr lastObject];
                
                //获得节点属性的内容
                GDataXMLNode *node=[value attributeForName:@"data"];
               //获得属性名称
                NSString *str=[node stringValue];
                
                dom.name=str;
              
            }if ([[value name]isEqualToString:@"latitude_e6"]) {
                
                DomModel *dom=[_arr lastObject];
                GDataXMLNode *node1=[value attributeForName:@"data"];
                NSString *str1=[node1 stringValue];
                dom.latitude_e6=str1;
              
            }if ([[value name]isEqualToString:@"longitude_e6"]) {
                
                 DomModel *dom=[_arr lastObject];
                GDataXMLNode *node2=[value attributeForName:@"data"];
                NSString *str2=[node2 stringValue];
                dom.longitude_e6=str2;
               
            }
        }
    }
    
}


你可能感兴趣的:(ios,遍历,xml,dom)