`
473687880
  • 浏览: 535864 次
文章分类
社区版块
存档分类
最新评论

TBXML常用API

 
阅读更多

==========================================================
文件

tbxml“框架”中包含的文件:
TBXML.h - tbxml声明
TBXML.m - tbxml实现
NSDataAdditions.h - NSData类别等的声明
NSDataAdditions.m - NSData类别等的实现,包括base64,gzip,NSData类别等等

==========================================================
结构体

TBXMLElement结构体,包含XML中对应element的信息. 包括元素标签名、元素text值、指向第一个属性对象的指针、父元素、首个子元素,以及下一个兄弟元素.可以用这个结构体创建一个链表(树)来表示一个完整的xml文件.
结构如下:
typedef struct _TBXMLElement {
char * name;
char * text;
TBXMLAttribute * firstAttribute;
struct _TBXMLElement * parentElement;
struct _TBXMLElement * firstChild;
struct _TBXMLElement * currentChild;
struct _TBXMLElement * nextSibling;
struct _TBXMLElement * previousSibling;
} TBXMLElement;

TBXMLAttribute结构体,包含了xml中的属性信息. 包括属性名、属性值和下一个兄弟属性对象的指针. 使用这个结构可以创建一个Element的属性链表.
typedef struct _TBXMLAttribute {
char * name;
char * value;
struct _TBXMLAttribute * next;
} TBXMLAttribute;

TBXMLElementBuffer结构体,是用来缓存TBXMLElement结构体对象的. 当被使用时, 将新建一个缓存区并连接到前一个上(链表).这样可以有效的管理Element在内存的创建和回收.
typedef struct _TBXMLElementBuffer {
TBXMLElement * elements;
struct _TBXMLElementBuffer * next;
struct _TBXMLElementBuffer * previous;
} TBXMLElementBuffer;

TBXMLAttributeBuffer结构体,是用来缓存TBXMLAttribute对象的. 当被使用时, 将新建一个缓存区并连接到前一个上(链表). 这样可以有效的管理Attribute在内存的创建和回收.
typedef struct _TBXMLAttributeBuffer {
TBXMLAttribute * attributes;
struct _TBXMLAttributeBuffer * next;
struct _TBXMLAttributeBuffer * previous;
} TBXMLAttributeBuffer;

==========================================================
方法

1.实例化
+ (id)tbxmlWithXMLFile:(NSString*)aXMLFile;
用xml文件名(包括扩展名)实例化一个tbxml对象
例如:TBXML * tbxml = [[TBXML alloc] initWithXMLFile:@”books.xml”];

- (id)initWithXMLFile:(NSString*)aXMLFile fileExtension:(NSString*)aFileExtension
用xml文件名和扩展名实例化一个tbxml对象
例如:TBXML * tbxml = [[TBXML alloc] initWithXMLFile:@”books” fileExtension:@”xml”];

- (id)initWithXMLString:(NSString*)aXMLString
用一段xml内容代码来实例化一个tbxml对象
例如:tbxml = [[TBXML alloc] initWithXMLString:@”<root><elem1 attribute1=”elem1 attribute1″/><elem2 attribute2=”elem2 attribute2″/></root>;”];

- (id)initWithXMLData:(NSData*)aData
用一个封装了xml内容的NSData对象来实例化tbxml对象
例如:TBXML * tbxml = [[TBXML alloc] initWithXMLData:myXMLData];

- (id)initWithURL:(NSURL*)aURL
用一个URL来实例化一个tbxml
例如:tbxml = [[TBXML alloc] initWithURL:[NSURL URLWithString:@"http://www.ifanr.com/feed"]];

2.成员方法
+ (TBXMLElement*) childElementNamed:(NSString*)aName parentElement:(TBXMLElement*)aParentXMLElement
获得aParentXMLElement元素的首个名字为aName的元素
例如:TBXMLElement * author = [TBXML childElementNamed:@"author" parentElement:rootXMLElement];

+ (TBXMLElement*) nextSiblingNamed:(NSString*)aName searchFromElement:(TBXMLElement*)aXMLElement
返回下一个名为aName的兄弟元素
例如:TBXMLElement * author = [TBXML nextSiblingNamed:@"author" searchFromElement:author];

+ (NSString*) valueOfAttributeNamed:(NSString *)aName forElement:(TBXMLElement*)aXMLElement
返回aXMLElement元素中,名为aName的属性的属性值。
例如:NSString * authorName = [TBXML valueOfAttributeNamed:@"name" forElement:authorElement];

+ (NSString*) textForElement:(TBXMLElement*)aXMLElement
返回元素aXMLElement的text值
例如:NSString * bookDescription = [TBXML textForElement:bookElement];

+ (NSString*) elementName:(TBXMLElement*)aXMLElement;
返回元素aXMLElement的标签名
例如:NSString * elementName = [TBXML elementName:element];

+ (NSString*) attributeName:(TBXMLAttribute*)aXMLAttribute;
返回属性aXMLAttribute的属性名
例如:NSString * attributeName = [TBXML attributeName:attribute];

+ (NSString*) attributeValue:(TBXMLAttribute*)aXMLAttribute;
返回属性aXMLAttribute的属性值
例如:NSString * attributeValue = [TBXML attributeValue:attribute];

常用的基本就这些,通过合理的迭代,递归等组合调用,基本可以解决所有的解析问题。

详细示例参见:http://pimacun.72pines.com/2010/12/31/tbxml/

分享到:
评论

相关推荐

    TBXML, 超快速,轻量,易于使用的Mac & iOS的XML解析器.zip

    TBXML, 超快速,轻量,易于使用的Mac & iOS的XML解析器 什么是 TBXMLTBXML是一个轻量级的XML文档解析器,用 objective-c 设计,用于苹果 iPad,iPhone & iPod ( 。Mac OSX兼容) 触发器。 TBXML旨在提供最快的XML解析...

    iOS中XML解析 (一) TBXML (实例:打印xml内容及存储到数组)

    在iOS开发中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它用于存储结构化数据。本文将深入探讨如何在iOS中使用TBXML库进行XML解析,并通过实例来展示如何打印XML内容以及将其存储到数组中。 ...

    tbxml-android:TBXML的Android NDK端口

    tbxml-android: 版本 1.00.0TBXML - Android NDK 端口tbxml-android是 TBXML XML 解析库(适用于 iOS)到 Android NDK 的端口。 它适用于那些偶尔需要 SAX 解析器的速度和 DOM 的便利性并且可以使用非常简单的 XML ...

    AISHTTP发送请求,NSXML解析XML文件

    let request = AISHTTPRequestOperation(URL: "http://api.gitee.com/activities") request.HTTPMethod = "GET" request.start() ``` 接下来,当请求完成并收到响应时,服务器返回的数据通常以XML格式存在。在这种...

    ios开发 XML解析

    在iOS开发中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它具有结构化、可扩展性,常用于网络数据传输和配置文件。本篇将详细讲解如何在iOS应用中对XML进行解析,重点围绕“TBXML”这个开源库。 ...

    ios xml解析

    在iOS开发中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它用于存储结构化数据。本文将深入探讨两种在iOS中解析XML的主要方法:苹果自带的NSXMLParser以及第三方库TBXML。 首先,苹果提供的...

    Polldaddy-iOS:这是从 SVN 移出的 Polldaddy iOS 代码,处于最后一个已知良好状态

    适用于 iOS 的 Polldaddy 这是从 SVN 移出的 Polldaddy 代码,处于其最后一个已知的良好状态。 配置 Polldaddy API 的配置在 Resources 目录的 Configuration.plist 文件中... TBXML 库用于与 Polldaddy API 返回的元

    iOS从网络异步加载图片

    本篇文章将详细探讨如何利用第三方库TBXML进行XML解析以及使用IconDownloader实现图片的异步加载。 首先,我们来了解一下TBXML(Tiny Binary XML)。TBXML是一个轻量级、高效的XML解析库,专为iOS和Mac OS X设计。...

    iphone,xml多种解析方法

    KissXML是基于libxml2的一个Objective-C封装库,它提供了一个与GDataXML类似的API,但性能更优。KissXML比GDataXML更快,内存占用更少,同时它也支持XPath查询,是iOS开发中常用的XML解析库之一。 4. **TouchXML**...

    iOS异步加载图片 (需要至少12个字的名称,过分!)

    其中,`NSOperationQueue`和`GCD(Grand Central Dispatch)`是常用的工具。利用它们,我们可以创建后台任务来下载和解码图片,完成后通知主线程更新UI。 标签提到了"TBXML",这是一个流行的开源库,用于解析XML文档...

    ios xml解析 NSXMLParser

    ios xml解析 NSXMLParser。 NSXMLParser是基于SAX的解析方式。NSXMLParser采用了委托设计模式,因此他的实现类需要采用协议并支持委托。NSXMLParser解析XML需要委托NSXMLParserDelegate实现。

    ios_XML_解析

    还有说用TBXML、KissXML等等的 可是NSXMLParse要实现代理,多出一大堆代码,你就不能解析完给我一个对象就好了? 还有GDataXML,又得加库,又得加头文件路径,关键是没搞成功,看着真是醉了 还有其他的TBXML, ...

    项目经理继续教育推荐课程14习题.

    1. **概述**:TBXML 是一个轻量级的DOM模式解析库,主要用于解析XML文档。它不支持XML文档验证和XPath查询功能,但可以用来读取XML数据。 2. **特点**: - 轻量级:相比于其他解析器,TBXML占用资源较少。 - 不...

    iOS开发中常见的解析XML的类库以及简要安装方法

    NSXMLParser是一个基于事件的解析器,它使用SAX模式处理XML文档,而libxml2则同时支持DOM和SAX两种解析方式,是开源的,且提供了C语言的API。 除了系统自带的解析器,iOS开发社区还贡献了许多第三方解析类库,每种...

    Learning iOS Game Programming

    - **OpenGL**:一种广泛使用的跨语言、跨平台的API,用于渲染2D和3D矢量图形。在iOS游戏中,OpenGL常用于图形处理。 - **OpenAL**:一个开放标准的音频库,用于处理三维音效。在iOS游戏中,OpenAL常用来增强游戏的...

    SQL Server和DB2中XML数据类型之简要比较.pdf

    具体而言,在SQL Server中创建包含类型化XML列的表时,可以将该列绑定到一个XML架构集合,如创建一个名为tbxml的表并指定其架构集合为myxml,相应的SQL语句为:“CREATE TABLE tbxml(ID INT PRIMARY KEY, REMARK XML...

    Learning ios Game Programming.pdf

    - **汤姆·布拉德利**(Tom Bradley),软件架构师兼TBXML的设计者认为本书是对游戏开发世界的优秀入门介绍,详尽地讲解了游戏设计和实现的各个方面。 - **塞巴斯蒂安·卡多索**(Sebastien Cardoso)表示这本书能够...

Global site tag (gtag.js) - Google Analytics