KissXML的使用
来源:互联网 发布:淘宝组装手机靠谱吗 编辑:程序博客网 时间:2024/06/05 18:51
使用KissXML前的操作
1. 使用KissXML必须导入libxml2.2.dylib框架 2. 在Header Research Paths中添加路径:/usr/include/libxml2
创建
//创建根元素结点 GDataXMLElement *rootElement = [GDataXMLElement elementWithName:@"China"]; NSArray *provinces = @[@"Henan", @"Zhejiang", @"Jiangsu"]; NSArray *citys = @[@[@"郑州", @"洛阳"], @[@"杭州", @"金华", @"台州"], @[@"南京", @"苏州", @"无锡"]]; for (int i = 0; i < 3; i++) { //创建第二层元素结点 GDataXMLElement *province = [GDataXMLElement elementWithName:@"province"]; //创建第二层元素结点的属性结点 GDataXMLElement *provinceName = [GDataXMLElement elementWithName:@"name" stringValue:provinces[i]]; //第二层元素结点添加属性结点 [province addAttribute:provinceName]; for (NSString *string in citys[i]) { //创建第三层元素结点 GDataXMLElement *city = [GDataXMLElement elementWithName:@"city" stringValue:string]; //第二层元素结点添加子节点(第三层元素结点) [province addChild:city]; } //根元素结点添加子节点(第二层元素结点) [rootElement addChild:province]; } GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithRootElement:rootElement]; [doc setVersion:@"2.0"]; [doc setCharacterEncoding:@"UTF-8"]; NSData *data = doc.XMLData; NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/city.xml"]; NSLog(@"%@", filePath); [data writeToFile:filePath atomically:YES];
读取
forin遍历
- (IBAction)readXML:(id)sender { //读取文件 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"xml" ofType:@"xml"]; NSData *data = [NSData dataWithContentsOfFile:filePath]; //解析成文档 GDataXMLDocument *document = [[GDataXMLDocument alloc] initWithData:data error:nil]; //获取根元素结点 GDataXMLElement *rootElement = document.rootElement; //获取根元素结点的属性结点 GDataXMLNode *rootNode = [rootElement attributeForName:@"name"]; //打印根元素结点的属性结点的名字和字符串值 NSLog(@"%@", rootNode.stringValue); //在根元素结点的子节点数组中遍历第二层元素结点 for (GDataXMLElement *element in rootElement.children) { //获取第二层元素结点的属性结点 GDataXMLNode *node1 = [element attributeForName:@"name"]; NSLog(@"%@", node1.stringValue); //在第二层元素结点的子节点数组中遍历第三层元素结点 for (GDataXMLElement *sonElement in element.children) { //在第三层元素结点的子节点数组中遍历第四层元素结点 for (GDataXMLNode *grandsonElement in sonElement.children) { //打印第四层元素结点的名字和字符串值 NSLog(@"%@:%@", grandsonElement.name, grandsonElement.stringValue); } } }}
XPath遍历
//遍历与属性有关的结点/*//@country //所有是country的属性结点//cd[@country] //所有含有country属性的cd元素结点//cd[@*] //所有含有属性的元素结点//cd[@country=\"USA\"] //所有含有country="USA"属性的cd元素结点*/- (IBAction)xpathReadXML:(UIButton *)sender { //读取XML文件 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"xml2" ofType:@"xml"]; NSData *data = [NSData dataWithContentsOfFile:filePath]; //解析XML文档 GDataXMLDocument *document = [[GDataXMLDocument alloc] initWithData:data error:nil]; //创建XPath路径 NSString *XPath = @"//cd[@*]"; //查找符合XPath路径的所有结点 NSArray *array = [document nodesForXPath:XPath error:nil]; //遍历所有结点 for (GDataXMLElement *element in array) { //打印结点的名字和字符串值 NSLog(@"name:%@\nstringValue:%@", element.name, element.stringValue); }}
0 0
- KissXML的使用
- 关于kissxml的简单使用
- cocos2d 中使用Kissxml
- 使用KissXml解析xml
- KissXML的简易教程
- kissXml和GData使用配置
- IOS学习笔记33—XML解析之KissXML的使用
- IOS学习笔记33—XML解析之KissXML的使用
- IOS学习笔记33—XML解析之KissXML的使用
- IOS开发之路三(XML解析之KissXML的使用)
- Modules 'libxmlSimu' not found 在使用XMPP时导入KissXML时出现的问题
- Kissxml 解析 XML数据的简单Demo
- iOS 分别使用GDataXML和KissXML生成xml
- kissXml 配置
- KissXml API
- KissXml API
- KissXml 解析
- 有关KissXML
- Power of Two
- Android之解决远程拍照不打开activity用其它方式获取surfaceView
- 从eclipse转android studio遇到的坑
- EasyUI datagrid在Layout中动态适应问题
- C++ 笔记4:指针函数
- KissXML的使用
- 理解java垃圾回收机制
- 11.3.4节练习
- 第九周项目一深复制体验(2)
- android 程序中取消标题栏
- AmBinaryEditor(AndroidManifest二进制修改工具介绍)
- HibernateTemplate的一些常用方法总结《转》
- mysql limit 优化
- CodeForces 659 C. Tanya and Toys