码迷,mamicode.com
首页 > 移动开发 > 详细

iOS dom解析xml格式数据

时间:2016-04-25 21:05:08      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

问题描述:接口返回的是xml格式数据,而且节点名居然都是相同的,采用了dom解析最终解决

一.文件导入

1.下载GDataXMLNode.h 和 GDataXMLNode.m文件,导入工程(csdn文件下载链接:http://download.csdn.net/detail/wusangtongxue/9502292)

2.配置环境:

(1)改成ARC环境(-fno-objc-arc);

(2)找到“Paths\Header Search Paths”项,并添加“/usr/include/libxml2”到列表中;

(3)找到“Linking\Other Linker Flags”项,并添加“-lxml2”到列表中

3.导入SBJson文件夹,用于将解析后的数据转换成字符串类型

二.实际项目

1.网页打印的xml格式数据

技术分享

2.导入#import "GDataXMLNode.h",解析

-(void)xmlHttpRequest
{
    NSString *str = 内网网址;
    NSURL *urll = [NSURL URLWithString:str];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:urll cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
    // 2.
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        
            NSError *errror = nil;
            GDataXMLDocument *document = [[GDataXMLDocument alloc]initWithData:data options:0 error:&errror];
            //获取根节点
            GDataXMLElement *rootElement = [document rootElement];
            //获取所有子节点 装进一个数组
            NSArray *array = [rootElement elementsForName:@"string"];
            NSLog(@"打印数组:%@",array);
        NSString *string =[NSString stringWithFormat:@"%@",array[2]];
        NSRange startStr = [string rangeOfString:@"<string>"];
        NSRange end = [string rangeOfString:@"</string>"];
        NSString *sub = [string substringWithRange:NSMakeRange(startStr.location+8, end.location-startStr.location-9)];
        NSLog(@"打印截取后的字符串:%@",sub);

    }];

}

array:打印数组:(
    "GDataXMLElement 0x7ff26ad97f10: {type:1 name:string xml:\"<string>610</string>\"}",
    "GDataXMLElement 0x7ff26ad97cb0: {type:1 name:string xml:\"<string/>\"}",
    "GDataXMLElement 0x7ff26ad97ce0: {type:1 name:string xml:\"<string>http://192.168.1.1:8080/</string>\"}",
    "GDataXMLElement 0x7ff26adbb480: {type:1 name:string xml:\"<string/>\"}"
)
sub:打印截取后的字符串:http://192.168.1.1:8080
这样就可以得到NSString数据了

:网址是内网,需要根据自己的需要进行解析 这里的例子是本人项目的xml数据,有点特殊是节点名称都是相同的

参考网址:http://www.cnblogs.com/pengyingh/articles/2342164.html

 

iOS dom解析xml格式数据

标签:

原文地址:http://www.cnblogs.com/wusang/p/5432587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!