XML:Extensible Markup language (可扩展标记语言),主流格式之一,可以用来存储和传输数据格式之一,可以用来存储和传输数据 XML数据格式的功能
1、数据交换
2、内容管理
3、用作配置文件 XML数据结构的语法1、声明2、节点使用一对标签表示3、根节点是起始节点,只有一个。节点可以嵌套
4、节点可以有值,存储在一对标签中
如何进行XML解析有以下两种方法:
1、SAX解析SAX:Simple API for XML .基于事件驱动的解析方式,逐行解析数据。(采用协议回调机制)SAX解析XML,是基于事件通知的模式,一边读取XML文档一边处理,不必等整个文档加载完之后才采取操作
SAX解析器会检测整个XML树形结构,你的代码会控制它在哪里停止,使用哪些数据之类的事情。
就是说,SAX可控制性强,占用内存小,适用于提取部分数据。当在读取解析过程中遇到需要处理的对象,会发出通知对其进行处理,如果XML格式在某一处出现错误,前面的数据会被提取出来,错误后面数据的就显示不出来。 NSXMLParse类是iOS自带的XML解析类。采用SAX方式解析数据解析过程由NSXMLParserDelegate协议方法回调解析过程:开始标签->取值->结束标签->取值代码的实现过程是,首先我们建立一个XML文档,并引入文件,如下:
2、DOM工具解析DOM:Document Object Model (文档对象模型)。解析时需要将XML文件整体读入,并且将XML结构化成树状,使用时再通过树状结构读取相关数据,查找特定节点,然后对节点进行读或写。他的主要优势是实现简单,读写平衡;缺点是比较占内存,因为他要把整个xml文档都读入内存,文件越大,这种缺点就越明显。当文件内容出现错误时,在输入框内会标记出错误的位置GDataXMLNode是Google提供的开元XML解析类,对libxml2.dylib进行了Objective-C的封装,因此在使用GDataXML之前,你需要先导入libxml2。iOS中包含一个C语言的动态链接库libxml2.dylib,解析速度比NSXMLParser快