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的更多相关文章

  1. iOS -数据库网络之xml解析之远程解析XML

    1.IOS中XML文件获取    //设置远程访问地址     NSURL *url=[NSURL URLWithString:@""];       //创建动态URL请求,并初 ...

  2. iOS -数据库网络之xml解析

    XML文件有2种解析方式 1.基于文档(document) 2.基于事件(sax)   1.IOS中XML文件获取   首先要将XML导入工程中 在ViewController的按钮事件中,代码如下: ...

  3. iOS -数据库网络之xml解析之第三方解析XML

    1.导入第三方插件(GDalaXMLNode)   2.第三方插件配置   libxml/tree.h 路径   在项目属性中--Bulid Settings中搜索 Search   --Search ...

  4. 网络之XML解析-原生

    Json和XML都属于字符串,用于跨平台,前面总结了下Json,下面看下XML. XML定义这些百度比我说的清,不再啰嗦,直接代码,我喜欢把东西都放进注释. 一.首先看下要解析的XML内容 <? ...

  5. Gdata XML解析配置和简单使用

    导入libxml2,使用第三方AFNetworking网络请求,第三方XML解析GData GData需要的配置 Build Settings 里搜索,添加如下

  6. iOS-Gdata XML解析配置和简单使用

    简单介绍使用废话少说直接上图就能看明白... 导入libxml2,使用第三方AFNetworking网络请求,第三方XML解析GData GData需要的配置 Build Settings 里搜索,添 ...

  7. Android网络之数据解析----SAX方式解析XML数据

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  8. 网络数据的XML解析

    网络应用中的数据解析,因为最近的应用,无论是Android的和ios平台的,一直用也是建议用的都是Json解析, xml解析都有点被遗忘了. 然后最近自己在做着玩一个ios的小应用,涉及网络数据的抓取 ...

  9. [iOS 多线程 & 网络 - 2.3] - 解析xml

    A.XML基本知识 1.xml概念 什么是XML全称是Extensible Markup Language,译作“可扩展标记语言”跟JSON一样,也是常用的一种用于交互的数据格式一般也叫XML文档(X ...

随机推荐

  1. SignalR 2 入门

    在本教程中使用的软件版本 Visual Studio 2015 .NET 4.5 SignalR 版本 2 概述 本教程介绍了通过演示如何生成简单的基于浏览器的聊天应用程序的 SignalR 开发. ...

  2. 定时任务 Wpf.Quartz.Demo.2

    定时任务 Wpf.Quartz.Demo.1已经能运行了,本节开始用wpf搭界面. 准备工作: 1.界面选择MahApp.Metro 在App.xaml添加资源 <Application.Res ...

  3. 关于错误 openssl/ssl.h:没有那个文件或目录的解决办法

    原文链接:https://blog.csdn.net/kulala082/article/details/68484314 首先得安装openssl:sudo apt-get install open ...

  4. BitArray源码解析

    BitArray是C# System.Collections内置的集合,用于帮助进行位运算. BitArray的使用示例 // 创建两个大小为 8 的点阵列 BitArray ba1 = new Bi ...

  5. zabbix 监控安装

    注意:此篇是在安装好lnmp环境后才能部署的操作,所以,做之前准备好lnmp环境,或者可以参考我做的lnmp环境,之后接着此篇开始安装 监控系统Zabbix-3.2.1的安装 zabbix-serve ...

  6. vue教程2-03 vue计算属性的使用 computed

    vue教程2-03 vue计算属性的使用 computed computed:{ b:function(){ //默认调用get return 值 } } ---------------------- ...

  7. odoo开发笔记--odoo可用小图标

    odoo系统的小图标都采用了 fontawesome字体图标 官网: http://fontawesome.dashgame.com/ Github:http://fortawesome.github ...

  8. Oracle 获取本周、本月、本季、本年的第一天和最后一天

    Oracle 获取本周.本月.本季.本年的第一天和最后一天 --本周 select trunc(sysdate, 'd') + 1 from dual; select trunc(sysdate, ' ...

  9. 在MVC3中修改KindEditor实现上传图片到指定文件夹

    KindEditor编辑器默认上传的图片文件夹,是根据系统时间自动生成的,图片是自动上传到这些文件夹里面,无法选择.如果要上传图片到指定文件夹,像相册一样管理图片,则需要扩展KindEditor编辑器 ...

  10. Scala之隐式转换implicit详解

    假设我们有一个表示文本的行数的类LineNumber: class LineNumber ( val num : Int ) 我们可以用这个类来表示一本书中每一页的行数: val lineNumOfP ...