网络之XML解析-GData

本文涉及的产品
云解析 DNS,旗舰版 1个月
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
简介:

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

相关文章
|
1天前
|
安全 网络安全 数据安全/隐私保护
数字堡垒:网络安全漏洞、加密技术与安全意识的深度解析
【7月更文挑战第25天】在数字化时代的浪潮中,网络安全已成为维护个人隐私和企业资产的关键防线。本文深入探讨了网络安全的三大支柱:网络漏洞识别与防护机制、先进的加密技术以及培养全民网络安全意识的重要性。通过分析最新的网络攻击案例、评估不同加密算法的优劣,并讨论如何通过教育提升公众的安全防范意识,旨在为读者提供一个全面的网络安全知识框架,从而在日益复杂的网络环境中保持警觉和保护。
|
3天前
|
安全 网络安全 数据安全/隐私保护
网络安全漏洞、加密技术与安全意识的深度解析
本文将深入探讨网络安全漏洞、加密技术以及安全意识的重要性和影响。我们将从网络安全漏洞的定义、类型及其产生的原因开始,然后详细解析加密技术的工作原理、种类及其在保护信息安全中的作用。最后,我们将讨论安全意识的重要性,以及如何通过提高公众的安全意识来防止网络攻击。
11 3
|
4天前
|
XML Web App开发 JavaScript
XML DOM 解析器
大多数浏览器内置XML解析器,将XML转化为JavaScript可访问的XML DOM对象。XML DOM提供遍历、访问、插入和删除节点的功能。文档须先加载至DOM。示例代码通过XMLHTTP请求加载`books.xml`,兼容多种浏览器,响应设置为XML DOM用于后续处理。
|
4天前
|
XML Web App开发 JavaScript
XML DOM 解析器
**XML DOM解析器将XML转换为JS对象,便于操作。浏览器内置XML解析器,通过XMLHttpRequest或ActiveXObject加载XML如&quot;books.xml&quot;。
|
2天前
|
XML Web App开发 JavaScript
XML DOM 解析器
Most browsers have a built-in XML parser to create an XML DOM object from XML, making it accessible via JavaScript. The XML DOM includes methods for navigating, accessing, inserting, and deleting nodes in the XML tree.
|
6天前
|
XML Web App开发 JavaScript
XML DOM 解析器
**XML DOM解析器**在浏览器中内置,将XML转换为可操作的对象。通过遍历、访问和修改节点来处理XML。首先,XML文档加载到DOM对象,如JavaScript的`responseXML`属性所示。
|
1月前
|
XML Java 数据格式
深度解析 Spring 源码:从 BeanDefinition 源码探索 Bean 的本质
深度解析 Spring 源码:从 BeanDefinition 源码探索 Bean 的本质
36 3
|
22天前
|
存储 安全 Java
深度长文解析SpringWebFlux响应式框架15个核心组件源码
以上是Spring WebFlux 框架核心组件的全部介绍了,希望可以帮助你全面深入的理解 WebFlux的原理,关注【威哥爱编程】,主页里可查看V哥每天更新的原创技术内容,让我们一起成长。
|
23天前
|
关系型数据库 分布式数据库 数据库
PolarDB-X源码解析:揭秘分布式事务处理
【7月更文挑战第3天】**PolarDB-X源码解析:揭秘分布式事务处理** PolarDB-X,应对大规模分布式事务挑战,基于2PC协议确保ACID特性。通过预提交和提交阶段保证原子性与一致性,使用一致性快照隔离和乐观锁减少冲突,结合故障恢复机制确保高可用。源码中的事务管理逻辑展现了优化的分布式事务处理流程,为开发者提供了洞察分布式数据库核心技术的窗口。随着开源社区的发展,更多创新实践将促进数据库技术进步。
28 3
|
1月前
|
XML Java 数据格式
深度解析 Spring 源码:揭秘 BeanFactory 之谜
深度解析 Spring 源码:揭秘 BeanFactory 之谜
25 1

推荐镜像

更多