博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS dom解析xml格式数据
阅读量:4987 次
发布时间:2019-06-12

本文共 2110 字,大约阅读时间需要 7 分钟。

问题描述:接口返回的是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:@"
"]; NSRange end = [string rangeOfString:@"
"]; 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

 

转载于:https://www.cnblogs.com/wusang/p/5432587.html

你可能感兴趣的文章
C#转义字符
查看>>
前端公共库cdn服务推荐//提高加载速度/节省流量
查看>>
python openpyxl内存不主动释放 ——关闭Excel工作簿后内存依旧(MemoryError)
查看>>
snprintf 返回值陷阱 重新封装
查看>>
asp.net GridView多行表头的实现,合并表头
查看>>
C#套打
查看>>
PolyCluster: Minimum Fragment Disagreement Clustering for Polyploid Phasing 多聚类:用于多倍体的最小碎片不一致聚类...
查看>>
【每日进步】July 2012
查看>>
327 作业
查看>>
sql 取汉字首字母
查看>>
javascript 封装ajax(多版本)
查看>>
bzoj4034: [HAOI2015]树上操作(树剖)
查看>>
android-Activity
查看>>
${sessionScope.user}的使用方法
查看>>
IOS断点下载
查看>>
Steal 偷天换日 题解(From luoguBlog)
查看>>
Hadoop HDFS学习总结
查看>>
C#wxpay和alipay
查看>>
Combination Sum
查看>>
WCF开发框架形成之旅---结合代码生成工具实现快速开发
查看>>