iOS中XML解析方式之SAX解析
在iOS中我们获取的文件会以很多中形式储存,那么我们怎么能转化成我们需要的形式,被我们使用呢?下面我们就一起来学习一下解析XML格式文件的SAX方法
首先我们应该先了解一下什么是XML格式,这样我们在解析的时候就能找到我们想要的内容,从而解析出我们想要得到的内容
我们来看一下简单地XML的存储格式
大家看下面的图<>是一个开始标签 </>是一个结束标签.内容存放与开始标签和结束标签之间,是以树的形式对数据进行储存的,接下来我们看一下如何对XML数据进行解析
首先我们应该创建一个Student类,属性和XML中需要解析的内容一致
下面我们就要开始解析XML文件,首先我们要获取文件的路径,在这里,我是把文件直接拖到工程中,当然在实际的操作中,我们经常是将网上获取的文件进行解析.但是在这里我们只是简单地演示一下整个的过程,之于更加复杂的解析,只不过是举一反三,比葫芦画瓢罢了
NSXMLParse类,是XML解析类,使用SAX方法进行解析,接下来我们创建NSXMLParse类,整个解析过程是在代理中进行,所以我们还要设置代理,遵循协议并且实现方法
我们应该注意箭头标注的地方(这里是告诉系统我们做好准备了,要开始解析了),因为很多人容易忘记写,导致程序运行出来没有值
解析出来的数据我们还要设置变量进行接收
接下来我们实现代理里面的方法,代理里面有许多的方法,当然我们只选择我们所需要的
1,开始解析,在开始解析里面,我们可以对我们的接收变量进行初始化
2,遇到开始标签,就是<>,这里面的开始标签的选取是由针对性的,不同的开始标签有不同的功能.大家可以从下面的代码中看一下标签的选取 遇到student标签时,说明后面紧跟的内容就是我们想要获取内容,那么此时,我们将student进行初始化,用来接收数据
在开始与结束标签之间,我们设置一个tempString来接收数据,作为一个临时存放数据的容器
在我们遇到结束标签时,说明我们已经将我们所需要的内容存储到设置的tempString中了,现在我们要做的就是将我们需要的内容进行分离赋值
在结束解析的时候我们可以将我们解析到的内容打印出来
当然,我们也可以打印一下错误信息,这样如果出现错误的时候,我们可以根据信息找到错误所在
到此,我们的XML的SAX解析就进行完了.当然如果遇到更复杂的内容时,里面还有许多的问题,比如
如果接收的内容过大,但是在解析时不能一次性的解析出来,需要分几部分进行解析,这是该做怎样的调整呢?
我们会在下面的文章中进行学习!!!