网络之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
时间: 2024-10-03 15:46:22

网络之XML解析-GData的相关文章

网络之XML解析-原生

Json和XML都属于字符串,用于跨平台,前面总结了下Json,下面看下XML. XML定义这些百度比我说的清,不再啰嗦,直接代码,我喜欢把东西都放进注释. 一.首先看下要解析的XML内容 <?xml version="1.0" encoding="utf-8"?> <Users> <User id="1"> <name>Tom</name> <age>20</age&

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

[正文] 一.XML和Json数据的引入: 通常情况下,每个需要访问网络的应用程序都会有一个自己的服务器,我们可以向服务器提交数据,也可以从服务器获取数据.不过这个时候就有一个问题,这些数据是以什么格式在网络上传输的呢?一般我们都会在网络上传输一些格式化后的数据,这种数据会有一定的结构规格和语言,当另一方受到数据消息后就可以按照相同的结构规格进行解析,从而取出它想要的那部分内容. 在网络上传输数据最常用的格式:XML和Json.本文就来学习一下XML数据的解析,Json格式的数据解析将在下一篇文

iOS开发之网络数据解析(二)--XML解析简介

前言:本篇随笔介绍的是XML解析.   正文:   1.XML解析方式有2两种: DOM:一次性将整个XML数据加载进内存进行解析,比较适合解析小文件 SAX:从根元素开始,按顺序一个元素一个元素往下解析,比较适合解析大文件   2.IOS中XML解析方案有很多种: 2-1.第三方框架: libxml2:纯C语言,默认包含在iOS SDK中,同时支持DOM和SAX解析 GDataXML:DOM方式解析,由Google开发,基于libxml2 2-2.苹果原生 NSXMLParser:SAX方式解

iOS开发使用XML解析网络数据_IOS

前言:本篇随笔介绍的是XML解析. 正文: 1.XML解析方式有2两种: DOM:一次性将整个XML数据加载进内存进行解析,比较适合解析小文件SAX:从根元素开始,按顺序一个元素一个元素往下解析,比较适合解析大文件 2.IOS中XML解析方案有很多种: 2-1.第三方框架: libxml2:纯C语言,默认包含在iOS SDK中,同时支持DOM和SAX解析 GDataXML:DOM方式解析,由Google开发,基于libxml2 2-2.苹果原生 NSXMLParser:SAX方式解析,使用简单

.net时代的网络世界语:xml

xml|网络 .net时代的网络世界语:xml     ------------------------------------------------------------ [lovestudio]    Xml的简单认识   XML是一种标识语言.一个XML元素是由开始标签.结束标签以及标签之间的数据构成的.开始和结束标签用来描述标签之间的数据.标签之间的数据被认为是元素的值.例如:例如,在下面一个XML元素的例子中,元素"student"的值是"zhangrui&qu

Android网络之数据解析----使用Google Gson解析Json数据

[正文] 文章回顾: Android网络之数据解析----SAX方式解析XML数据 一.Json数据的介绍                                                                                                                 Json(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JS的一个子集. Json采用完全独立于语言的文本格式,这使得Jso

iOS开发网络篇—XML介绍

一.XML简单介绍 XML:全称是Extensible Markup Language,译作"可扩展标记语言" 跟JSON一样,也是常用的一种用于交互的数据格式,一般也叫XML文档(XML Document)   XML举例 <videos>     <video name="小黄人 第01部" length="30" />     <video name="小黄人 第02部" length=&q

XML入门教程:XML 解析器

xml|教程|入门教程 如需读取.更新.创建或者操作某个XML文档,则需要XML解析器. 实例 解析XML文件 - 跨浏览器的实例 本例是一个跨浏览器的实例,把某个XML文档("note.xml")载入XML解析器. <html><body><script type="text/vbscript">set xmlDoc=CreateObject("Microsoft.XMLDOM")xmlDoc.async=&

从任意数据结构生成XML解析器产生SAX事件

xml|生成xml|数据|数据结构  在j2ee1.4标准教材里看到一个很有趣的例子,从任意数据结构生成XML解析器产生SAX事件.数据结构可以是文本文件,PDF格式文档等.关键是自己解析这些数据源.另外一个有意思的地方是观察者模式的应用.所以就粗糙的改了一下并完整到可以测试运行.观察者模式简略UML图: 具体实现 被观察者对象ParseXMLSubject类:package test; import java.io.*;import org.xml.sax.helpers.Attributes