TBXML是一个用于iOS上的解析速度非常快的轻量级XML解析库。提供了非常简洁的接口,使用起来很简单。
它提供了可以通过文件路径、URL、XML文件内容、内容字符串等方式载入XML文件,提供了获取XML节点和属性值的方法,以及一个遍历节点的方法。不过TBXML只提供了读的功能。
初始化和释放TBXML
TBXML* tbxml =[ [[TBXML alloc] initWithXMLFile:@"file.xml"] retain];
一定要在后面加上retain,要不运行app时,会出现非法访问的错误。
使用完毕后,注意释放:
[tbxml release];
使用递归方法遍历所有节点和属性的例子
- (void) traverseElement:(TBXMLElement *)element {
do {
// 显示XML元素名称
NSLog(@"%@",[TBXML elementName:element]);
// 获取到当前节点的第一个属性
TBXMLAttribute * attribute = element->firstAttribute;
// if attribute is valid
while (attribute) {
// 在log窗口中显示属性的名称和值
NSLog(@"%@->%@ = %@",[TBXML elementName:element],[TBXML attributeName:attribute], [TBXML attributeValue:attribute]);
// 获取下一个属性
attribute = attribute->next;
}
// 递归遍历下一个子元素
if (element->firstChild) [self traverseElement:element->firstChild];
// 获取同级元素
} while ((element = element->nextSibling));
}
TBXML常用API 2010年10月28日 星期四 11:27 ============================================================================== 文件 tbxml“框架”中包含的文件: TBXML.h - tbxml声明 TBXML.m - tbxml实现 NSDataAdditions.h - NSData类别等的声明
就xml解析来讲,目前用过的最简洁,速度最快的当属tbxml,是基于C框架的所以直接拿在iPhone上用了。 先说下用法,把tbxml的4个文件拖入class,然后为工程添加libz.dylib框架即可。 废话就不说了,直接看代码,如下: 定义了两个方法(其中一个带着递归子方法),分别处理已知结构和未知结构的xml。 1.解析已知结构的xml。先看下xml的基本结构:
就xml解析来讲,目前用过的最简洁,速度最快的当属tbxml,是基于C框架的所以直接拿在iPhone上用了。 先说下用法,把tbxml的4个文件拖入class,然后为工程添加libz.dylib框架即可。 废话就不说了,直接看代码,如下: 定义了两个方法(其中一个带着递归子方法),分别处理已知结构和未知结构的xml。 //调用 - (void)viewDidLoad { tbXml = [TBXM
TBXML 2011-05-21 09:51:20| 分类: MAC相关|字号 订阅 提示 : 在加入TBXML库后,需要加入libz.dylib动态库,以避免编译错误。 更多xml解析请参考:http://www.raywenderlich.com/553/how-to-chose-the-best-xml-parser-for-your-iphone-project ==========
使用TBXML解析XML文档时,采用的是DOM模式。 TBXML框架需要去下载 下载地址 https://github.com/71squared/TBXML 技术网站 http://www.tbxml.co.uk/TBXML/TBXML_Free.html 需要将TBXML-HEADERS 和 TBXML-Code文件夹添加到工程中。还要注意一下它所依赖的库 Foundation.framewo
就xml解析来讲,目前用过的最简洁,速度最快的当属tbxml,是基于C框架的所以直接拿在iPhone上用了。 先说下用法,把tbxml的4个文件拖入class,然后为工程添加libz.dylib框架即可。 废话就不说了,直接看代码,如下: 定义了两个方法(其中一个带着递归子方法),分别处理已知结构和未知结构的xml。 //调用 - (void)viewDidLoad { tbXml = [TBXM
ios平台除了可以使用NSXML解析XML文件外,还有TBXML框架也可以解析XML文件,TBXML采用DOM模式。 TBXML框架可以在网络上下载,网络地址为:https://github.com/71squared/TBXML ,下载完成并解压后,将TBXML-Headers和TBXML-Code文件夹拷贝到工程中,由于TBXML依赖libz.dylib库,还需要在工程Framework中
"_OBJC_CLASS_$_TBXML", referenced from: objc-class-ref in ReadCatagry.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invoca
-(id)initWithMgzListXML:(NSString *)xmlString{ self = [super init]; if(self){ self.contentArray = [[NSMutableDictionary alloc] init]; NSString *xml = xmlString; xml =[x
假设一段xml: ///xmlStr /* <A> <B> <C id='c1'>C1</C> <C>C2</C> <C>C3</C> <C>C4</C> </B> <B> <C id='c2'>C5</C> <C>C6</C> <C>C7</C> </B
总的来说,iphone 上可用的解析XML的方式大概有2种类型的。 1.Tree-based API:这种API的处理方式是将XML的结构看成是树,然后把树的各部分看成一个对象来处理,这就是我们说的DOM (Document Object Model)方式。在iPhone的SDK里包含了一个libxml2的框架(Framework)就能进行DOM解析方式。Google的GDataXML也是基
第一部分XML数据 <?xml version="1.0"?> <authors> <author name="DouglasAdams"> <book title="The Hitchhiker's Guide to the Galaxy11111111" price="15.49"> <description>
问题内容: 我有一个将要推送的特定格式的XML文档。该文档将始终是同一类型,因此非常严格。 我需要对此进行解析,以便将其转换为JSON(嗯,这是一个混蛋版本,以便其他人可以将其与DOJO一起使用)。 我的问题是,我应该使用非常快速的轻量级(不需要SAX等)XML解析器(有什么想法吗?)还是编写我自己的,基本上可以转换为StringBuffer并在数组中旋转?基本上,我假设所有HTML解析器都将旋转
在Android上执行SRV记录查找的最节省资源的方法是什么,例如在XMPP客户端(如Yaxim)中? null 编辑:提供DNSSEC验证/DANE证书查询的奖励积分。
问题内容: 嗨,我想解析看起来像这样的非常奇怪的xml: 使用本教程时,无法从foo2获取值: http://javarevisited.blogspot.com/2011/12/parse-xml-file-in-java-example- tutorial.html 但是,如果我们有相同的参数,例如 问题答案: //规范化您的XML,然后通过该XML 创建一个,然后遵循以下代码
本文向大家介绍SpringBoot2 整合Ehcache组件,轻量级缓存管理的原理解析,包括了SpringBoot2 整合Ehcache组件,轻量级缓存管理的原理解析的使用技巧和注意事项,需要的朋友参考一下 本文源码:GitHub·点这里 || GitEE·点这里 一、Ehcache缓存简介 1、基础简介 EhCache是一个纯Java的进程内缓存框架,具有快速、上手简单等特点,是Hibernat
本文向大家介绍Asp.Net Core轻量级Aop解决方案:AspectCore,包括了Asp.Net Core轻量级Aop解决方案:AspectCore的使用技巧和注意事项,需要的朋友参考一下 什么是AspectCore Project ? AspectCore Project 是适用于Asp.Net Core 平台的轻量级 Aop(Aspect-oriented programming) 解决
本文向大家介绍前端轻量级MVC框架CanJS详解,包括了前端轻量级MVC框架CanJS详解的使用技巧和注意事项,需要的朋友参考一下 选择正确的库 创建一个JS APP没有好的工具是很有难度的,jQuery只是操作DOM的库,没有提供任何创建APP的基础,这就是为什么我们要一个类似CanJS的专门的库。 CanJS 是一个轻量级的MVC库,提供你创建一个JS APP所需的工具。 CanJS 是一个轻
问题内容: JPanel和JFrame有什么区别,以及与轻量级,重量级的关系? 问题答案: JPanel是允许将多个UI组件放在一起的容器。JFrame是使用Swing编写的窗口。 所有的Swing组件都是所谓的“轻型”组件,因为它们是用Java编写的。例如,如果您运行Swing应用程序并尝试使用UI分析工具(例如Windows中的WinSpy)对其进行分析,则只会看到一个元素:窗口(JFrame
问题内容: 我目前在一个网站上工作,该网站必须存在于内存可用性非常低的VM上(目前被告知要达到512mb)。不幸的是,至少在不久的将来,数据库和Web应用程序必须是同一台服务器。 现在,我已经在这里通读了一些问题,并尝试进行自己的研究,但是这里有很多选择。从本质上讲,什么是可以安装的轻巧的数据库服务器?SQL或NoSQL并不重要;它不会占用大量数据库资源,但我现在不想随我现在选择的内容而受到限制。