IOS开发之路三(XML解析之KissXML的使用)
来源:互联网 发布:mac怎么用搜狗输入法 编辑:程序博客网 时间:2024/05/19 21:42
最近再做一个项目需要用到xml的解析。今天查了一些资料自己做了一个小demo。纯OC没有界面。。
在IOS平台上进行XML文档的解析有很多种方法,在SDK里面有自带的解析方法,但是大多情况下都倾向于用第三方的库,原因是解析效率更高、使用上更方便,关于IOS平台各种解析XML库的优缺点分析,可以看下这篇文章:http://www.raywenderlich.com/553/how-to-chose-the-best-xml-parser-for-your-iphone-project
这里主要介绍一下由Google提供的一种在IOS平台上进行XML解析的开源库GDataXML,可以到http://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/下载源码,下载下来后进入文件夹找到XMLSupport文件夹,将里面的GDataXMLNode.h和GDataXMLNode.m文件拖拽到项目中新建的文件夹即可(我这里是建的GDataXML文件夹),注意要选中复制文件到项目中而不是只是引用,如图:
然后就是对工程进行一些配置,点击工程根目录然后点击左边的Target,进入Build Phases,然后点击第三个Link binary with libraries,点击加号搜索libxml2并将这个库添加到工程,如图:
接下来再进入Build Settings,在搜索框中搜索Head Search Path,然后双击并点击+按钮添加/usr/include/libxml2,如图:
接下来再搜索框中搜索Other linker flags,同样的方式添加-lxml2,如图:
到这里,添加和配置的工作就完成了(是有点麻烦),接下来就看如何使用了:
首先在工程中新建一个xml文件,作为我们要解析的对象。
<?xml version="1.0" encoding="UTF-8"?><root> <name value="lixingle"/> <age>22</age> <name value="wildcat"/> <age>21</age></root>
主函数:
//// main.m// XMLGdatademo2//// Created by WildCat on 13-8-4.// Copyright (c) 2013年 wildcat. All rights reserved.//#import <Foundation/Foundation.h>#import "GdataXMLNode.h"int main(int argc, const char * argv[]){ @autoreleasepool { //NSString *filePath = [[NSBundle mainBundle] pathForResource:@"users" ofType:@"xml"]; //获取工程目录的xml文件 NSString *filePath=[NSString stringWithFormat:@"/WildCat/IOSTiKu/2013_OC/XMLGdatademo2/test.xml"]; //获得data NSString *xmlString = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; GDataXMLDocument *xmlDoc = [[GDataXMLDocument alloc] initWithXMLString:xmlString options:0 error:nil]; GDataXMLElement *xmlEle = [xmlDoc rootElement]; NSArray *array = [xmlEle children]; NSLog(@"count : %zi", [array count]); for (int i = 0; i < [array count]; i++) { GDataXMLElement *ele = [array objectAtIndex:i]; // 根据标签名判断 if ([[ele name] isEqualToString:@"name"]) { // 读标签里面的属性 NSLog(@"name --> %@", [[ele attributeForName:@"value"] stringValue]); } else { // 直接读标签间的String NSLog(@"age --> %@", [ele stringValue]); } } } return 0;}
结果:
2013-08-04 14:05:46.814 XMLGdatademo2[1825:303] count : 4
2013-08-04 14:05:46.818 XMLGdatademo2[1825:303] name --> lixingle
2013-08-04 14:05:46.819 XMLGdatademo2[1825:303] age --> 22
2013-08-04 14:05:46.819 XMLGdatademo2[1825:303] name --> wusj
2013-08-04 14:05:46.820 XMLGdatademo2[1825:303] age --> 24
- IOS开发之路三(XML解析之KissXML的使用)
- IOS学习笔记33—XML解析之KissXML的使用
- IOS学习笔记33—XML解析之KissXML的使用
- IOS学习笔记33—XML解析之KissXML的使用
- IOS开发之路三(XML解析之GDataXML的使用)
- 使用KissXml解析xml
- iOS开发 - GDataXML&KissXML解析
- 基于KissXML,简易解析xml ( iOS )
- iOS开发之XML解析
- iOS开发之XML解析
- iOS开发之XML解析
- Kissxml 解析 XML数据的简单Demo
- xml解析 kissxml
- iOS开发之xml数据解析的基本流程
- iOS开发之解析XML格式数据
- iOS开发之解析XML数据
- java解析xml之三:使用domj4
- java解析xml之三:使用domj4
- HDU2112 HDU Today
- 十、短暂的春秋---与机会失之交臂的公司
- 圆检测——最小二乘法拟合圆的推导
- 自建项目记录
- GridLayout与TableLayout布局
- IOS开发之路三(XML解析之KissXML的使用)
- 【转载】再次写给我们这些浮躁的程序员
- Max Points on a Line 同一条直线上最大数量的点
- 1,2,3,5,6,7,8 如何合并成1-3,5-8
- 用JS实现乘法表
- 题目1163:素数
- JQuery 与 ExtJS
- 何时调用拷贝构造函数
- Cannot have both DTEND and DURATION in an event