IOS 中XML、JSON格式解析

作者: 你duck不必呀 | 来源:发表于2019-06-04 09:54 被阅读0次

XML解析有两种方式

1.系统自带的方法

NSXMLParser

使用

(1)用data初始化

NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];

(2)设置代理,要先遵守协议NSXMLParserDelegate

parser.delegate = self;

(3)开始解析

[parser parse];

实现代理的方法

//开始
- (void)parserDidStartDocument:(NSXMLParser *)parser 

//结束
- (void)parserDidEndDocument:(NSXMLParser *)parser

//解析到一个元素的开头时调用,在这个方法里面拿到解析的属性,在赋值给模型
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 

//解析到一个元素结束
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

//解析到的元素的值
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

如果嵌套的元素很多,解析起来很恶心

2.用第三方库

libxml2:C语言实现的,默认包含在iOS中
GDataXML:谷歌基于libxml2开发的

libxml2

纯C语言写的,http://xmlsoft.org/html/index.html这个是文档要,使用之前需要设置

项目->TARGETS->Build Phases->Link Binary With Libraries 添加libxml2.tdb

然后Build Settings-> Header Search Paths下添加路径/usr/include/libxml2

使用的话还是看文档

GDataxml

基于libxml2(需要像上面一样先配置),的oc封装,非ARC环境。在使用的时候(其实就是arc和mrc混编的问题),把.h和.m文件拖到项目,然后到项目->TARGETS->Build Phases->Compile Sources 找到.m文件在后面加上-fno-objc-arc,能编译成功就可以

使用

解析成文档
NSError *xmlerror = nil;
GDataXMLDocument *xmlDocument = [[GDataXMLDocument alloc]initWithData:data options:0 error:&xmlerror];

获取根元素并获取根元素
GDataXMLElement *rootElement = self.xmlDocument.rootElement;

获取元素属性
GDataXMLNode *rootAttribute=[rootElement attributeForName:@"count"]

获取属性的值
NSString *value=[rootAttribute stringValue];

获取子元素
NSArray *pointsArray = [rootElement elementsForName:@"subElement"]

XMLJSON解析也是两种方式

1.系统自带的方法

NSJSONSerialization 可以跳到头文件看

OC对象转JSON数据
+ (nullable NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error;

JSON数据转OC对象
+ (nullable id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;

OC对象是否可转
+ (BOOL)isValidJSONObject:(id)obj;

2.第三方框架

JSONKit、SBJson、TouchJSON(感觉系统自带的最好用)
JSONKit,需要要添加libz.tbd动态库

相关文章

  • 05、网络解析

    解析:从事先规定好的格式中提取数据iOS开发常见的解析:XML解析,JSON解析 XML解析 XMl事例: XML...

  • IOS 中XML、JSON格式解析

    XML解析有两种方式 1.系统自带的方法 使用 (1)用data初始化 (2)设置代理,要先遵守协议NSXMLPa...

  • IOS开发——网络篇&数据解析

    关于IOS开发,数据解析的方法有两种:JSON和XML。 一、JSON解析 :从事先规定好的格式串中提取数据 ①、...

  • 2019-08-27 iOS数据解析

    iOS常用的数据解析格式有两种:json,xml 这两种数据形式;一. json 即JavaScript Obje...

  • iOS-xml和json数据解析

    1 数据解析 在iOS开发中,常见的数据传输格式有两种:JSON和XML。目前JSON由于其体积小、传输速度快等优...

  • 转载别人的XML/JSON 数据解析挺全面(作者神兽gcc)

    作者神兽gcc2015.11.11 02:05 iOS开发——XML/JSON数据解析 除了XML和Json,文中...

  • JSON Schema辅助工具

    JSON在线解析工具(功能包括:JSON格式化、压缩、验证格式、JSON转XML、CSV、YAML),地址如下:h...

  • 数据解析

    XML数据格式解析 pull解析方式 sax解析方式 JSON 数据格式解析 解析代码很简单,但是还要有APP类,...

  • JSON XML解析

    JSON,XML解析 解析 解析:从实现规定好的格式中提取数据 解析的前提:提前设定好格式,数据提供方按照格式提供...

  • ios数据解析2016

    所谓"解析":从事先规定好的格式中提取数据解析一共有两种格式:JSON和XML一、JSON全称JavaScript...

网友评论

    本文标题:IOS 中XML、JSON格式解析

    本文链接:https://www.haomeiwen.com/subject/nrzkxctx.html