用TBXML解析XML数据
1.Tree-based API:这种API的处理方式是将XML的结构看成是树,然后把树的各部分看成一个对象来处理,这就是我们说的DOM (Document Object Model)方式。在iPhone的SDK里包含了一个libxml2的框架(Framework)就能进行DOM解析方式。Google的GDataXML也是基于libxml2的,因此在使用GDataXML之前,你需要先导入libxml2。 2.Event-driven API:这种方式通常用于解析基于的事件,SAX解析方式就是这种解析方式的代表。在iPhone开发的,也可以利用这种方式来解析XML,不过这可不是Iphone SDK的属性啊,而是Objective-C的功能。在Objectvie-C种有专门解析XML的类NSXMLParser。 r TBXML are:
Design Goals Check out this post for a good comparison of XML parsers. “How To Chose The Best XML Parser for Your iPhone Project” Performance
介绍一种轻量级的XML解析方式,TBXML。
按着以上两个分类的话,算是DOM 的解析方式。需要去找寻root 节点。然后按着名字顺序查找。找到某个节点之后,如果需要找寻孩子信息,那么使用这个节点做为parent,继续向里面查找。 正如他的官方介绍所说TBXML 具有如下特点: 速度快,效率高,占用的额外资源少。耗时短。 本人看来,用起来确实方便。上手容易,快速。 常用的初始化方式有。如下几种。 + (id)tbxmlWithURL:(NSURL*)aURL; + (id)tbxmlWithXMLString:(NSString*)aXMLString; id)tbxmlWithXMLData:(NSData*)aData; id)tbxmlWithXMLFile:(NSString*)aXMLFile; NSString*)aXMLFile fileExtension:(NSString*)aFileExtension; - (id)initWithURL:(NSURL*)aURL; id)initWithXMLString:(id)initWithXMLData:(id)initWithXMLFile:( @end
静态方法也不过7种而已。 ======================================================================================= @interfaceTBXML (StaticFunctions) + (NSString*) elementName:(TBXMLElement*)aXMLElement; NSString*) textForElement:(NSString*) valueOfAttributeNamed:(NSString*)aName forElement:(NSString*) attributeName:(TBXMLAttribute*)aXMLAttribute; NSString*) attributeValue:( + (TBXMLElement*) nextSiblingNamed:(NSString*)aName searchFromElement:(TBXMLElement*) childElementNamed:(NSString*)aName parentElement:(TBXMLElement*)aParentXMLElement; @end
下面是我的一个使用例子: 网络返回xml数据如下:
[html]
view plain
copy
我需要把数据解析出来。生成一个Software对象,代码如下:
[objc]
view plain
copy
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |