Objective-C XML本地文件解析
来源:互联网 发布:人工智能安防公司 编辑:程序博客网 时间:2024/06/01 10:03
//—— ————— —————— ————— —————— — 测试XML解析————— ————————— —————————————————————ios解析思路
//1、获得解析路径
//2、将解析路径转换成UTF8码的字符串类型
//3、使用 GDataXMLDocument 转换成XML类型文件
//4、GDataXMLElement 获得根节点
//5、开始繁琐的解析:根据不同的情况用GDataXMLElement(节点)或NSArray(数组)存放解析数据
//6、找到要的数据,使用stringValue转换数据类型,输出
本文的解析是用GDataXML,可以从http://code.google.com/p/gdata-objectivec-client/downloads/list下载“gdata-objective-c client library.”
GDataXML解析的具体内容,亲测试有效:
<Books>
<bookauthor="小王">
<bookTitle>c语言</bookTitle>
<bookPublish>清华大学</bookPublish>
<bookPrise>33</bookPrise>
</book>
<bookauthor="小张">
<bookTitle>IOS编程</bookTitle>
<bookPublish>北京大学</bookPublish>
<bookPrise>77</bookPrise>
</book>
</Books>
开始解析:- (void)justDoXml
{
//获得静态路径
NSString * path = [[NSBundlemainBundle]pathForResource:@"Book"ofType:@"xml"];
//取得路径中的文件
NSString * xml = [NSStringstringWithContentsOfFile:pathencoding:NSUTF8StringEncodingerror:nil];
//转换xml内的数据
GDataXMLDocument * doc = [[GDataXMLDocumentalloc]initWithXMLString:xmloptions:0error:nil];
//创建根节点
GDataXMLElement * root = [docrootElement];
//取得根节点root中名字为”book“的数组元素,赋值给bookPo
NSArray * bookPo = [rootelementsForName:@"book"];//NSArray里包含元素类型必须是一样的
解析得到数组:
<bookTitle>c语言</bookTitle>
<bookPublish>清华大学</bookPublish>
<bookPrise>33</bookPrise>
<bookTitle>IOS编程</bookTitle>
<bookPublish>北京大学</bookPublish>
<bookPrise>77</bookPrise>
//取得数组bookPo中下标为0的节点,赋值给bookIfo
GDataXMLElement * bookInfo = [bookPoobjectAtIndex:0];
解析得到节点:
<bookTitle>c语言</bookTitle>
<bookPublish>清华大学</bookPublish>
<bookPrise>33</bookPrise>
//取得节点bookInfo中名字为”book“的数组元素,赋值给ifo
NSArray * ifo = [bookInfoelementsForName:@"bookTitle"];
解析得到数组:
<bookTitle>c语言</bookTitle> //这其实是数组
//取得数组ifo中下标为0的节点,赋值给oneifo
GDataXMLElement * oneifo = [ifoobjectAtIndex:0];
解析得到数组中下标为 0 的元素:
c语言
//用stringValue函数得出oneifo内的数据
NSString * result = [oneifostringValue];
NSLog(@"%@",result);
//之前的步骤完成了解析出一个数据,以下进行便利即可取出所有的数据
for (int i=0; i<bookPo.count; i++) {
//打印书名
GDataXMLElement * bookInfo = [bookPoobjectAtIndex:i];
//取得节点bookInfo中名字为”book“的数组元素,赋值给ifo
NSArray * ifo = [bookInfoelementsForName:@"bookTitle"];
//取得数组ifo中下标为0的节点,赋值给oneifo
GDataXMLElement * oneifo = [ifoobjectAtIndex:0];
//用stringValue函数得出oneifo内的数据
NSString * result = [oneifostringValue];
NSLog(@"书名=%@",result);
//遍历书的出版社
//取得节点bookInfo中名字为”book“的数组元素,赋值给ifo
NSArray * ifo1 = [bookInfoelementsForName:@"bookPublish"];
//取得数组ifo中下标为0的节点,赋值给oneifo
GDataXMLElement * oneifo1 = [ifo1objectAtIndex:0];
//用stringValue函数得出oneifo内的数据
NSString * result1 = [oneifo1stringValue];
NSLog(@"出版社=%@",result1);
//遍历书的价格(用循环嵌套可让代码看起来更少)
NSLog(@"价格=%@",[[[bookInfoelementsForName:@"bookPrise"]objectAtIndex:0]stringValue]);
//遍历书的作者姓名(属性)
NSLog(@"作者=%@",[[bookInfoattributeForName:@"author"]stringValue]);
}
}
2013-05-02 20:40:23.291 TestJosenMySelf[8278:c07] c语言
2013-05-02 20:40:23.291 TestJosenMySelf[8278:c07]书名=c语言
2013-05-02 20:40:23.292 TestJosenMySelf[8278:c07]出版社=清华大学
2013-05-02 20:40:23.292 TestJosenMySelf[8278:c07]价格=33
2013-05-02 20:40:23.292 TestJosenMySelf[8278:c07]作者=小王
2013-05-02 20:40:23.293 TestJosenMySelf[8278:c07]书名=IOS编程
2013-05-02 20:40:23.293 TestJosenMySelf[8278:c07]出版社=北京大学
2013-05-02 20:40:23.293 TestJosenMySelf[8278:c07]价格=77
2013-05-02 20:40:23.294 TestJosenMySelf[8278:c07]作者=小张
- Objective-C XML本地文件解析
- objective-c xml解析
- Objective-C学习--------解析XML
- 近况小结+Objective-c解析XML文件
- Objective-C解析html(xml)全过程
- Objective-C学习之解析XML
- Objective-C学习之解析XML
- Objective-C ---XML解析 (梳理整理)
- Objective-C XML/HTML 解析器
- iOS Objective-C 解析XML SAX解析方法
- IOS----Objective-C中JSON解析与XML解析
- 如何使用Objective-C解析HTML和XML
- 如何使用Objective-C解析HTML和XML
- 使用Objective-C HPPLE库解析HTML和XML
- 如何使用Objective-C解析HTML和XML
- objective-c Http xml 文件解压 解析。NSXMLParser
- Objective-C 借助第三方库解析XML格式数据
- Objective-c读写xml
- asp.net连接数据库三种方法总结
- WEB应用中读取资源文件的方式有三种
- 《Qt for Symbian》序言
- 经销商问题(zkw费用流不适用稠密图) [新-柯黑的提醒]
- C++之异常处理
- Objective-C XML本地文件解析
- 黑马程序员-(1)Java新手之路
- 《算法导论》学习笔记 第一章&&第二章&&第三章
- 对HashMap值进行排序java代码
- Shell脚本学习(一):shell变量和一些常用命令
- 计算斐波那契数列,两种方法,打开注释掉的语句你会感受到算法的力量
- Android 数据库存取图片
- Lua中的元表和元方法
- 数据结构学习笔记--(2)数组