IOS 解析XML

来源:互联网 发布:淘宝仓库在哪里 编辑:程序博客网 时间:2024/05/18 02:54
解析XML有自带的SDK 但是很多人都是用哪个第三方的

GDataXMLNode 来帮助解析 所以要去下载这个包


注意点:要添加libxml2.dylib框架 但是加这个框架的时候 都会报错 原因是 我们要修改一个地方


在项目的 Header Search Paths 要添加一栏 :/usr/include/libxml2  这样才能解决错误




代码如下

  //获取工程目录的xml文件

    NSURL *url = [NSURLURLWithString:@"http://www.vc111.cn/LSXH/GETNEWS2.ASP"];

   NSData *xmlData = [[NSDataalloc]initWithContentsOfURL:url];

   GDataXMLDocument *doc = [[GDataXMLDocumentalloc]initWithData:xmlData options:0error:nil];

    //获取根节点

   GDataXMLElement *rootElement = [docrootElement];

    //获取根节点下的节点

   NSArray *users = [rootElementchildren];

   for (GDataXMLElement *userin users) { 

        //节点的id属性例如<string id=@"linpeng">则会得到 linpeng     

//        NSString *userId = [[user attributeForName:@"id"] stringValue];       

//        NSLog(@"User id is:%@",userId);  

        

        //获取NewsId节点的值

        

       GDataXMLElement *ageElement = [[userelementsForName:@"NewsId"]objectAtIndex:0];

       NSString *age = [ageElementstringValue];

        NSLog(@"NewsId  is:%@",age);


        //获取NewsTitle节点的值

        

       GDataXMLElement *nameElement = [[userelementsForName:@"NewsTitle"]objectAtIndex:0];

       NSString *name = [nameElementstringValue];

        NSLog(@"NewsTitle is:%@",name);

        

        NSLog(@"-------------------");

        

    }

    

   

   GDataXMLNode *n1 = [usersobjectAtIndex:0];

    //第一个子节点的第一个位置的(不按节点名字来找)

     NSLog(@"%@----%@",[[n1childAtIndex:0]stringValue],[[n1childAtIndex:1]stringValue] );

    //查找第一个节点的名字为 NewsId下的元素因为它本身就是最小的节点所以就只有一个 

    NSLog(@"----%@",[[[n1elementsForName:@"NewsId"]objectAtIndex:0]stringValue]);



源代码:http://download.csdn.net/detail/aa741649143/6005219