UI进阶 解析XML 解析JSON

时间:2023-03-09 15:12:09
UI进阶 解析XML 解析JSON

1、数据解析

  1. 解析的基本概念
  • 所谓“解析”:从事先规定好的格式中提取数据
  • 解析的前提:提前约定好格式,数据提供方按照格式提供数据、数据获取方则按照格式获取数据
  • iOS开发常见的解析:XML解析、JSON解析

2、XML数据结构

  • XML:Extensible Markup language(可扩展标记语言),主流数据格式之一,可以用来存储和传输数据。
  • XML数据格式的功能
    • 数据交换
    • 内容管理
    • 用作配置文件
  • XML数据结构的语法
    • 声明
    • 节点使用一对标签表示:起始和结束标签。
    • 根节点是起始节点,只有一个,节点可以嵌套。
    • 节点可以有值,存储在一对儿标签中。
  • XML示例
    UI进阶 解析XML 解析JSON

UI进阶 解析XML 解析JSON

3、JSON数据结构

  • JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,易于阅读和编写,同时也易于机器解析和生成。这些特性使JSON成为理想的数据交换语言。
  • JSON数据结构的语法
    • JSON文件有两种结构:
    • 对象:“名称/值”对的集合。不同的语言中,它被理解为对象,记录,结构,字典,哈希表,有键列表,或者关联数组。以“{”开始,以“}”结束,是“名称/值”对的集合。名称和值中间用“:”隔开。多个“名称/值”对之间用“,”隔开。
    • 数组: 值的有序列表。在大部分语言中,它被理解为数组。以“[”开始,以“]”结束,中间是数据。数据以“,”分隔。
    • JSON中的数据类型:字符串、数值、BOOL、对象、数组。
  • JSON示例
    UI进阶 解析XML 解析JSON
  • JSON数据结构的功能
    • 数据交换
    • 内容管理  
    • 配置文件

4、XML与JSON两种数据结构的优缺点

  • XML优缺点
    • 优点:

      • 格式统一,符合标准。
      • 容易与其他系统进行远程交互, 数据共享比较方便。
    • 
缺点:
      • XML文件格式文件庞大,格式复杂, 传输占用带宽。

      • 服务器端和客户端都需要花费大量代码来解析XML,不论服务器端还是客户端都使代码变的异常复杂和不容易维护。

      • 客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码。

      • 服务器端和客户端解析XML花费资源和时间。
  • JSON优缺点
    • 优点:
      • 
 数据格式比较简单,易于读写,格式都是压缩的,占用带宽小。
      • 
易于解析这种语言。
      • 支持多种语言,包括ActionScript,C,C#,ColdFusion,Java,JavaScript,Perl,PHP,Python,Ruby等语言服务器端语言,便于服务器端的解析。

      • 因为JSON格式能够直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,但是完成的任务不变,且易于维护。
    • 

缺点:

      • 没有XML格式这么推广的深入人心和使用广泛,没有XML那么通用性。

      • JSON格式目前在Web Service中推广还属于初级阶段 。

5、SAX解析XML文件

  解析的XML文件

  StudentInformation_XML.txt

 <students>
<student>
<name>小暖心</name>
<gender>女</gender>
<age></age>
<hobby>傲然</hobby>
</student>
<student>
<name>MBBoy</name>
<gender>男</gender>
<age></age>
<hobby>借牙签</hobby>
</student>
<student>
<name>海</name>
<gender>男</gender>
<age></age>
<hobby>助人为乐</hobby>
</student>
<student>
<name>-</name>
<gender>男</gender>
<age></age>
<hobby>芳芳女神</hobby>
</student>
<student>
<name>yyp</name>
<gender>女</gender>
<age></age>
<hobby>学习</hobby>
</student>
</students>

  

SAX:Simple API for XML 。 基于事件驱动的解析方式,逐行解析数据(采用协议回调机制)

  • 核心类:NSXMLParser是iOS自带的XML解析类,采用SAX方式解析数据。
  • 解析过程有NSXMLParserDelegate协议方法回调
  • 解析过程:开始标签->取值->结束标签->取值

  使用NSXMLParse要先创建它,设置各种属性,主要用到一下几个方法:
  UI进阶 解析XML 解析JSON    

  UI进阶 解析XML 解析JSON

   UI进阶 解析XML 解析JSON

  SAM解析XML数据步骤

 #pragma mark - sax解析XML文件
- (IBAction)saxParserActionXMLDocument:(UIButton *)sender {
// 1.获取文件路径
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"StudentInformation_XML" ofType:@"txt"];
// 2.将文件转换成NSData类型的对象
NSData *data = [NSData dataWithContentsOfFile:filePath];
// NSLog(@"%@",data);
// 3.设置SAX解析,并关联相关的XML文件
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
// 4.设置代理
parser.delegate = self;
// 5.开始解析
[parser parse];
} #pragma mark - NSXMLParserDelegate的协议方法
#pragma mark - 1.文档解析
- (void)parserDidStartDocument:(NSXMLParser *)parser {
// 数组初始化
self.dataArray = [NSMutableArray array];
} #pragma mark - 2.开始标签解析
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary<NSString *,NSString *> *)attributeDict {
// 根据需求需要的标签去获取相关的数据
if ([elementName isEqualToString:@"student"]) {
Student *student = [[Student alloc] init];
// 在这里不需要赋值
// 将数据对象添加到数组中
[self.dataArray addObject:student];
}
// 将当前的标签值传给currentElement属性
self.currentElement = elementName;
} #pragma mark - 3.解析标签中的内容,给对象赋值
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
// 从数组中取出相关的student对象,每次从数组中去最后一个元素,保证每次取出的对象都是刚刚存入的对象
Student *student = [self.dataArray lastObject];
// KVC赋值
[student setValue:string forKey:self.currentElement];
} #pragma mark - 4.结束标签
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
self.currentElement = nil;
} #pragma mark - 5.结束文档解析
- (void)parserDidEndDocument:(NSXMLParser *)parser {
// 打印校验
for (Student *student in self.dataArray) {
NSLog(@"name = %@, gender = %@, age = %ld, hobby = %@", student.name, student.gender, student.age, student.hobby);
}
} #pragma mark - 6.查看相关的错误处理
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError {
NSLog(@"错误信息error = %@", parseError);
}

6、DOM解析XML文件(第三方类:GDataXMLNote.h/m)

DOM:Document Object Model(文档对象模型)。DOM方式解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),通过遍历树结构可以检索任意XML节点,读取它的属性和值。而且通常情况下,可以借助XPath,直接查询XML节点。

  • 采用DOM方式解析数据
  • iOS中包含一个C语言的动态链接库libxml2.dylib(xcode7以后改为libxml2.tbd),解析速度比NSXMLParser快。
  • GDataXMLNode是Google提供的开源XML解析类,对libxml2.tbd进行了Objective-C的封装,能对较小或中等的xml文档进行读写操作且支持XPath语法。

  GDataXMLElement类的用到的属性和方法
  UI进阶 解析XML 解析JSON

  GDataXMLNote解析XML文件步骤

  1. 获取GDataXMLNode.h/m文件,将GDataXMLNode.h/m文件添加到工程中。
    UI进阶 解析XML 解析JSON
  2. 向工程中增加“libxml2.dylib”动态库。
    UI进阶 解析XML 解析JSON
    UI进阶 解析XML 解析JSON
    UI进阶 解析XML 解析JSON
  3. 导入"GDataXMLNode.h"文件到头文件中,此时编译失败,然后在工程的"Build Settings"页中找到"Header Search Path"项,添加"/usr/include/libxml2"。在"Other Linker Flags"项,添加"-lxml2"
    UI进阶 解析XML 解析JSON
    UI进阶 解析XML 解析JSON

    UI进阶 解析XML 解析JSON

  4. 此时编译报错,GDataXMLNote是非ARC文件,运行在ARC环境下会报错,按如下步骤,在Compile Source里找到刚引入的GDataXMLNote.m文件,添加"-fno-objc-arc"
    UI进阶 解析XML 解析JSON
 #pragma mark - ---------------------------------------------
#pragma mark - DOM解析XML文件
- (IBAction)domParserActionXMLDocument:(UIButton *)sender {
// 1.引入libxml2.tbd动态库
// 2.引入第三方GDataXMLNode
// 3.获取文件路径
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"StudentInformation_XML" ofType:@"txt"];
// 4.根据路径获取NSData类型的数据
NSData *data = [NSData dataWithContentsOfFile:filePath];
// 4.5 初始化数组
self.dataArray = [NSMutableArray array];
// 5.设置DOM解析,创建GDataXMLDocument对象,此时XML文件内所有的节点以树的形式存在GDataXMLDocument
GDataXMLDocument *document = [[GDataXMLDocument alloc] initWithData:data options: error:nil];
// 6.获取根节点,根节点里面包含了XML的所有信息
GDataXMLElement *rootElement = document.rootElement;
// 7.遍历获取相对应的子节点(student)
for (GDataXMLElement *studentElement in rootElement.children) {
Student *student = [[Student alloc] init];
// 遍历子节点(student)的子节点(name,gender,age,hobby)
for (GDataXMLElement *element in studentElement.children) {
NSLog(@"%@",element);
// KVC:根据标签给student对象赋值
// element.name 标签的名字
// element.stringValue 标签的值
[student setValue:element.stringValue forKey:element.name];
}
// 将student对象添加到数组中
[self.dataArray addObject:student];
}
// 遍历检验
for (Student *student in self.dataArray) {
NSLog(@"name = %@, gender = %@, age = %ld, hobby = %@", student.name, student.gender, student.age, student.hobby);
}
}

  解析的JSON文件  

  StudentInformation_json.txt

 [
{
"name":"凯凯",
"gender":"男",
"age":"",
"hobby":"PS"
},
{
"name":"YH",
"gender":"男",
"age":"",
"hobby":"女"
},
{
"name":"ZF",
"gender":"男",
"age":"",
"hobby":"玩毛"
},
{
"name":"小明",
"gender":"男",
"age":"",
"hobby":"滚出去"
},
{
"name":"淮予",
"gender":"女",
"age":"",
"hobby":"小暖心"
}
]

7、系统自带Foundation框架解析JSON数据

  NSJSONSerialization  里面包含了两个方法来通过不同数据形式解析JSON数据。

  aaarticlea/png;base64,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*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" alt="" />  

 #pragma mark - ---------------------------------------------------
#pragma mark - 系统自带Foundation框架解析JSON数据
- (IBAction)foundationParserActionJSONDocument:(UIButton *)sender {
// 1.获取文件路径
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"StudentInformation_json" ofType:@"txt"];
// 2.根据路径获取NSData类型的数据
NSData *data = [NSData dataWithContentsOfFile:filePath];
// 2.5 初始化数组
self.dataArray = [NSMutableArray array];
// 3.解析
NSArray *resultArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
// 4.遍历数组,使用KVC给Student对象赋值
for (NSDictionary *dict in resultArray) {
Student *student = [[Student alloc] init];
[student setValuesForKeysWithDictionary:dict];
[self.dataArray addObject:student];
}
// 遍历检验
for (Student *student in self.dataArray) {
NSLog(@"name = %@, gender = %@, age = %ld, hobby = %@", student.name, student.gender, student.age, student.hobby);
}
}

8、使用第三方类JSONKit来解析JSON数据

  引入JSONKit.h/m文件,并设置非ARC文件在ARC环境下运行。

  UI进阶 解析XML 解析JSON

   #pragma mark - -------------------------------------------------
#pragma mark - 使用第三方类JSONKit来解析JSON数据
- (IBAction)jsonkitParserActionJSONDocument:(UIButton *)sender {
// 1.引入第三方类 -- 设置 非arc文件在arc环境下运行
// 2.获取文件路径
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"StudentInformation_json" ofType:@"txt"];
// 3.根据路径获取NSData类型的数据
NSData *data = [NSData dataWithContentsOfFile:filePath];
// 3.5初始化数组
self.dataArray = [NSMutableArray array];
// 4. 解析 与NSJSONSerialization解析的唯一差别
NSArray *resultArray = [data objectFromJSONData];
// 5.遍历数组,使用KVC给Student对象赋值
for (NSDictionary *dict in resultArray) {
Student *student = [[Student alloc] init];
[student setValuesForKeysWithDictionary:dict];
[self.dataArray addObject:student];
}
// 遍历检验
for (Student *student in self.dataArray) {
NSLog(@"name = %@, gender = %@, age = %ld, hobby = %@", student.name, student.gender, student.age, student.hobby);
}
}

总结:

   1.数据解析:从某种格式的数据中提取自己所需要的数据

  2.主流的数据交换格式有两种:XML和JSON

  3.XML解析分为两种:SAX解析和DOM解析

  4.XML解析工具:NSXMLParser、GDataXMLNode、TochXML和KissXML等

  5.JSON解析工具:JSONKit、NSJSONSerialization、TouchJSON和SBJSON等,其中NSJSONSerialization是系统提供的解析类,其解析效率是最高的