XML介绍
XML是一种标记语言,用于编码和组织数据.XML的关注点在于文档,不过现在已经被广泛用作Web Service中传递结构化数据的格式,并被扩展位很多标记语言和协议.
** XML文档由内容与标记构成.**
而标记又由元素、属性、标签构成.标签又分为三种类型:起始标签(<person>)、结束标签(</person>)、空元素标签(<noContact>).其中空元素标签又叫做自关闭标签.属性指的是起始标签或空元素标签中的键对值,它们提供了关于元素的附加信息.
元素
元素指的是构成XML文档的组件.元素是标签、属性、内容的集合.元素包含起始标签与结束标签或者空元素标签.起始标签与结束标签之间的数据就是内容.内容可以包含标记与其它元素.这样就可以在数据结构中构建父子关系了.
这里提供两种XML解析的方式:
1.SAX 解析
tools.responseSerializer = [AFHTTPResponseSerializer serializer];
由于SAX解析器由事件驱动,SAX会顺序解析XML文档中的元素,一次处理一个元素.
2.DOM 解析
tools.responseSerializer = [AFXMLParserResponseSerializer serializer];
DOM解析器则会将整个XML文档一次性加入到内存中,可遍历的结点树形式解析.
iOS中自带两种XML解析器:libxml、NSXMLParser.
NSXMLParser是个OC SAX解析器,遇到元素、属性、Data快、注释与文档起始和结束事件时会调用和各种委托方法.
libxml是一个开源,基于C语言的API,支持SAX与DOM解析.libxml的SAX解析类似于NSXMLParser,在遇到某些事件时会大量回调.
libxml的DOM解析会将整个XML文档读取为结点树,可以通过XML Path Language(Path)遍历与查询.
还有许多的第三方的XML库可以使用,下面是一些XML库:
TBXML、KissXML、GDataXML.
网友评论