网络之XML解析-GData
GDataXML是一套Google使用Objective-C开发的DOM方式XML解析类库,支持读取和修改XML文档,支持XPath方式查询, GDataXML 是 iOS 下的一款轻量级 XML 解析器。它与C#的XmlDocument类似。
一、GData配置
1.将类引入项目中,添加libxml2.dylib
2.在Build Phases的Compile Sources中找到GDataXMLNode.m添加-fno-objc-arc

3.进入Build Settings,搜索Header Search Paths,添加路径/usr/include/libxml2

4.再搜索Other Linker Flags,添加新flag: -lxml2

二、GData的使用
1.引入GDataXMLNode.h
2.第三方中有好几个方法,这里可能没有列举全面 ,方法都差不多,可以查一下基本可以
3.对于Xpath,它是XML的查询方法,在.Net、IOS中是一样的,具体可以查询http://www.w3school.com.cn/xpath/index.asp
//
// ViewController.m
// GDataXml
//
// Created by City--Online on 15/4/29.
// Copyright (c) 2015年 CYW. All rights reserved.
//
#import "ViewController.h"
#import "GDataXMLNode.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSString *path=[[NSBundle mainBundle] pathForResource:@"user" ofType:@"xml"];
NSString *content=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
// GData比较简单,理清GDataXMLDocument、GDataXMLElement、GDataXMLNode三者的关系这样更容易理解
// 1.GDataXMLElement继承GDataXMLNode,GDataXMLElement可以作为GDataXMLNode,所以GDataXMLNode.h中返回的数组都是GDataXMLNode类型的数组
// 2.<></>表示一个GDataXMLElement
// 3.<>里的每一个属性为一个GDataXMLNode
// 实例化GDataXMLDocument
GDataXMLDocument *document=[[GDataXMLDocument alloc]initWithXMLString:content options:0 error:nil];
// 获得根元素
GDataXMLElement *rootElement=document.rootElement;
NSArray *users=[rootElement elementsForName:@"User"];
// users作为 GDataXMLNode数组
for (GDataXMLNode *userNode in users) {
NSArray *arr=[userNode children];
for (GDataXMLElement *e in arr) {
NSLog(@"%@",e);
}
}
// users作为 GDataXMLElement数组
for (GDataXMLElement *user in users) {
GDataXMLNode *userIdNode=[user attributeForName:@"id"];
NSLog(@"userId=%@",userIdNode.stringValue);
for (GDataXMLElement *element in user.children) {
if ([element.name isEqualToString:@"name"]) {
NSLog(@"name=%@",element.stringValue);
GDataXMLNode *idnode=[element attributeForName:@"id"];
NSLog(@"id=%@",idnode.stringValue);
}
else
{
NSLog(@"Age=%@\n\n",element.stringValue);
}
}
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
网络之XML解析-GData的更多相关文章
- iOS -数据库网络之xml解析之远程解析XML
1.IOS中XML文件获取 //设置远程访问地址 NSURL *url=[NSURL URLWithString:@""]; //创建动态URL请求,并初 ...
- iOS -数据库网络之xml解析
XML文件有2种解析方式 1.基于文档(document) 2.基于事件(sax) 1.IOS中XML文件获取 首先要将XML导入工程中 在ViewController的按钮事件中,代码如下: ...
- iOS -数据库网络之xml解析之第三方解析XML
1.导入第三方插件(GDalaXMLNode) 2.第三方插件配置 libxml/tree.h 路径 在项目属性中--Bulid Settings中搜索 Search --Search ...
- 网络之XML解析-原生
Json和XML都属于字符串,用于跨平台,前面总结了下Json,下面看下XML. XML定义这些百度比我说的清,不再啰嗦,直接代码,我喜欢把东西都放进注释. 一.首先看下要解析的XML内容 <? ...
- Gdata XML解析配置和简单使用
导入libxml2,使用第三方AFNetworking网络请求,第三方XML解析GData GData需要的配置 Build Settings 里搜索,添加如下
- iOS-Gdata XML解析配置和简单使用
简单介绍使用废话少说直接上图就能看明白... 导入libxml2,使用第三方AFNetworking网络请求,第三方XML解析GData GData需要的配置 Build Settings 里搜索,添 ...
- Android网络之数据解析----SAX方式解析XML数据
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- 网络数据的XML解析
网络应用中的数据解析,因为最近的应用,无论是Android的和ios平台的,一直用也是建议用的都是Json解析, xml解析都有点被遗忘了. 然后最近自己在做着玩一个ios的小应用,涉及网络数据的抓取 ...
- [iOS 多线程 & 网络 - 2.3] - 解析xml
A.XML基本知识 1.xml概念 什么是XML全称是Extensible Markup Language,译作“可扩展标记语言”跟JSON一样,也是常用的一种用于交互的数据格式一般也叫XML文档(X ...
随机推荐
- struts2 18拦截器详解(十)
ModelDrivenInterceptor 该拦截器处于defaultStack中的第九的位置,在ScopedModelDrivenInterceptor拦截器之后,要使该拦截器有效的话,Actio ...
- Kali Linux渗透测试实战 2.2 操作系统指纹识别
目录 2.2 操作系统指纹识别 2.2.1 Banner抓取 2.2.2 TCP 和 ICMP 常规指纹识别技术 TCP数据报格式 ICMP首部格式 TTL与TCP窗口大小 FIN探测 BOGUS f ...
- JS产生徐特尔图表
徐特尔图表是一个小游戏,在5*5的格子上,无序的写着1~25这25个数子,然后再找出来.其实在JS中也就是将25个数进行随机产生然后放到一个表格中.主要分为两部分,一是随机数的产生,还有一部分就是表格 ...
- 201621123018《Java程序设计》第8周学习报告
1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 contanis方 ...
- Java中goto和break、continue实现区别
goto 关键字很早就在程序设计语言中出现.事实上,goto 是汇编语言的程序控制结构的始祖:“若条件 A,则跳到这里:否则跳到那里”.若阅读由几乎所有编译器生成的汇编代码,就会发现程序控制里包含了许 ...
- 「PKUSC2018」主斗地(暴搜)
这道斗地主比 \(PKUWC\) 那道可做多了... 我们用 \(NOIP\) 那道斗地主的思路:暴搜出三代和四代,贪心出散牌. 还有jry为什么要出xx网友而不出他的另一个老婆 我们发现两个人的每回 ...
- lua 源码阅读顺序
https://www.reddit.com/comments/63hth/ask_reddit_which_oss_codebases_out_there_are_so/c02pxbp Online ...
- css 的 conic-gradient 学习
偶然间在微信公众号奇舞周刊上看到了这篇文章<CSS Painting API>,算是对 conic-gradient的初次见面. 后来有空的时候,百度搜了一下,看了这篇文章<CSS神 ...
- python 结巴分词简介以及操作
中文分词库:结巴分词 文档地址:https://github.com/fxsjy/jieba 代码对 Python 2/3 均兼容 全自动安装:easy_install jieba 或者 pip in ...
- python学习笔记11-文件操作方法
f=open("1.txt","r",encoding='utf-8') # a=f.readline() print(a) #光标会移动 下面两者结果不一样 ...