GDataXML解析XML文档

一、GDataXMLNode说明

  GDataXMLNode是Google提供的用于XML数据处理的类集。该类集对libxml2--DOM处理方式进行了封装,能对较小或中等的xml文档进行读写操作且支持XPath语法。

使用方法:
1、获取GDataXMLNode.h/m文件,将GDataXMLNode.h/m文件添加到工程中
2、向工程中增加“libxml2.dylib”库
3、在工程的“Build Settings”页中找到“Header Search Path”项,添加/usr/include/libxml2"到路径中
4、添加“GDataXMLNode.h”文件到头文件中,如工程能编译通过,则说明GDataXMLNode添加成功
二、GDataXMLNode示例

  将里面的GDataXMLNode.h和GDataXMLNode.m文件拖拽到项目中新建的文件夹即可(我这里是建的GDataXML文件夹),注意要选中复制文件到项目中而不是只是引用,如图:


  然后就是对工程进行一些配置,点击工程根目录然后点击左边的Target,进入Build Phases,然后点击第三个Link binary with libraries,点击加号搜索libxml2并将这个库添加到工程,如图:


  接下来再进入Build Settings,在搜索框中搜索Head Search Path,然后双击并点击+按钮添加/usr/include/libxml2,如图:

接下来再搜索框中搜索Other linker flags,同样的方式添加-lxml2,如图:

  到这里,添加和配置的工作就完成了(是有点麻烦),接下来就看如何使用了:

  首先在工程中新建一个xml文件,作为我们要解析的对象,新建方法是在工程中新建一个Empty的文件,命名为users.xml,然后添加内容:

<?xml version="1.0" encoding="utf-8"?>  
<Users>  <User id="001"]]>  <name>Ryan</name>  <age>24</age>  </User>  <User id="002"]]>  <name>Tang</name>  <age>23</age>  </User>  
</Users> 

  接下来就可以开始解析了,在需要解析的文件中引入头文件:#import"GDataXMLNode.h"

  新建的一个Empty工程,所以直接在AppDelegate.m中使用,代码如下:

 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
 2 {  
 3     self.window = [[[UIWindowalloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];  
 4     // Override point for customization after application launch.  
 5     self.window.backgroundColor = [UIColorwhiteColor];  
 6     [self.windowmakeKeyAndVisible];  
 7       
 8     //获取工程目录的xml文件  
 9     NSString *filePath = [[NSBundle mainBundle] pathForResource:@"users" ofType:@"xml"];  
10     NSData *xmlData = [[NSData alloc] initWithContentsOfFile:filePath];  
11       
12     //使用NSData对象初始化  
13     GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData  options:0error:nil];  
14       
15     //获取根节点(Users)  
16     GDataXMLElement *rootElement = [doc rootElement];  
17       
18     //获取根节点下的节点(User)  
19     NSArray *users = [rootElement elementsForName:@"User"];  
20       
21     for (GDataXMLElement *user in users) {  
22         //User节点的id属性  
23         NSString *userId = [[user attributeForName:@"id"] stringValue];  
24         NSLog(@"User id is:%@",userId);  
25           
26         //获取name节点的值  
27         GDataXMLElement *nameElement = [[user elementsForName:@"name"] objectAtIndex:0];  
28         NSString *name = [nameElement stringValue];  
29         NSLog(@"User name is:%@",name);  
30           
31         //获取age节点的值  
32         GDataXMLElement *ageElement = [[user elementsForName:@"age"] objectAtIndex:0];  
33         NSString *age = [ageElement stringValue];  
34         NSLog(@"User age is:%@",age);  
35         NSLog(@"-------------------");  
36     }      
37           
38     return YES;  
39 }  

  编译执行在控制台输出结果如下:

转载于:https://www.cnblogs.com/tryingx/articles/3715439.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493260.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RetinaNet+focal loss

one stage 精度不高&#xff0c;一个主要原因是正负样本的不平衡&#xff0c;以YOLO为例&#xff0c;每个grid cell有5个预测&#xff0c;本来正负样本的数量就有差距&#xff0c;再相当于进行5倍放大后&#xff0c;这种数量上的差异更会被放大。 文中提出新的分类损失函数Foca…

真实用户首次披露Waymo无人车服务体验: 为避开左转, 故意绕路

来源 &#xff1a;Ars Technica编译 &#xff1a;机器之能 高璇外国网友炸了&#xff1a;「就像看了一部大导演导的烂片一样。」在过去的 18 个月里&#xff0c;Waymo 的汽车一直在凤凰城的东南角运送乘客。该公司在合同中明确规定禁止乘客讨论用户体验&#xff0c;对项目信息进…

“横平竖直”进行连线+将相邻框进行合并

一.横平竖直”进行连线 解法1.将一些坐标点按照x相等,y相等连起来 解法1.根据 x或y总有一个相等的,用np.sum来找出和为1的点,然后在连起来,存在重复连线的问题. import numpy as npcoord np.array([[10, 60],[10, 20],[20, 20],[40, 40],[40, 60],[20, 40]])img np.zeros(…

一文看透汽车芯片!巨头布局技术路线全解密【附下载】| 智东西内参

来源&#xff1a;智东西摘要&#xff1a;一文看透汽车芯片&#xff01;巨头布局技术路线全解密智能驾驶涉及人机交互、视觉处理、智能决策等&#xff0c;核心是 AI 算法和芯片。伴随汽车电子化提速&#xff0c;汽车半导体加速成长&#xff0c;2017 年全球市场规模 288 亿美元&a…

详细介绍软件架构设计的三个维度

如果你对项目管理、系统架构有兴趣&#xff0c;请加微信订阅号“softjg”&#xff0c;加入这个PM、架构师的大家庭 架构设计是一个非常大的话题&#xff0c;不管写几篇文章&#xff0c;接触到的始终只是冰山一角&#xff0c;更多的是实践中去体会。这篇文章主要介绍面向对象OO、…

中国智能语音行业研究

报告来源&#xff1a;中信证券作者&#xff1a;刘雯蜀 杨泽原 张若海智能语音作为人机交互的新型方式&#xff0c;有望大规模推广&#xff0c;中国市场是更适合语音交互的市场。2017年中国人工智能市场规模达约220亿元&#xff0c;智能语音占中国人工智能市场份额的22%&#…

SQL2012 附加数据库提示5120错误解决方法

在win8.1 x64系统上使用sql2012进行附加数据库&#xff08;包括在x86系统正在使用的数据库文件&#xff0c;直接拷贝附加在X64系统中&#xff09;时&#xff0c;提示无法打开文件&#xff0c;5120错误。 这个错误是因为没有操作权限&#xff0c;所以附加的时候出错&#xff0c;…

pytorch利用rnn通过sin预测cos 利用lstm预测手写数字

一.利用rnn通过sin预测cos 1.首先可视化一下数据 import numpy as np from matplotlib import pyplot as plt def show(sin_np,cos_np):plt.figure()plt.title(Sin and Cos, fontsize18)plt.plot(steps, sin_np, r-, labelsin)plt.plot(steps, cos_np, b-, labelcos)plt.lege…

高德纳咨询公司(Gartner)预测:2019年七大人工智能科技趋势

来源&#xff1a;创新研究摘要&#xff1a;人工智能技术对我们的工作环境、工作种类等等正在产生日益深刻的影响&#xff0c;其结果或好或坏都有可能。为应对这种改变&#xff0c;特别是负面的变化&#xff0c;高德纳咨询公司&#xff08;Gartner&#xff09;于2018年12月13日发…

美爆!《自然》公布2018年19张最震撼的科学图片

来源&#xff1a;前瞻网 摘要&#xff1a;2018年注定将载入科学史册&#xff1a;气候上&#xff0c;从加利福尼亚烧到开普敦的致命野火和极端干旱、历史罕见;医学上&#xff0c;克隆和成像技术的进步既带来希望&#xff0c;也产生了争议;生物上&#xff0c;一系列事件让人们意识…

python实现Trie 树+朴素匹配字符串+RK算法匹配字符串+kmp算法匹配字符串

一.trie树应用&#xff1a; 相应leetcode 常用于搜索提示&#xff0c;如当输入一个网址&#xff0c;可以自动搜索出可能的选择。当没有完全匹配的搜索结果&#xff0c;可以返回前缀最相似的可能。 例如三个单词app, apple, add,我们按照以下规则创建了一颗Trie树.对于从树的根…

天才也勤奋!DeepMind哈萨比斯自述:领导400名博士向前,每天工作至凌晨4点

来源&#xff1a;量子位你见过凌晨4点的伦敦吗&#xff1f;哈萨比斯天天见。这位DeepMind创始人、AlphaGo之父&#xff0c;一直是全球赞颂的当世天才&#xff0c;但每天要到凌晨4点&#xff0c;才能睡下。这是哈萨比斯最新采访中透露的作息时间&#xff0c;他告诉《星期日泰晤士…

RNN知识+LSTM知识+encoder-decoder+ctc+基于pytorch的crnn网络结构

一&#xff0e;基础知识&#xff1a; 下图是一个循环神经网络实现语言模型的示例&#xff0c;可以看出其是基于当前的输入与过去的输入序列&#xff0c;预测序列的下一个字符&#xff0e; 序列特点就是某一步的输出不仅依赖于这一步的输入&#xff0c;还依赖于其他步的输入或输…

利用flask写的接口(base64, 二进制, 上传视频流)+异步+gunicorn部署Flask服务+多gpu卡部署

一.flask写的接口 1.1 manage.py启动服务(发送图片base64版) 这里要注意的是用docker的话,记得端口映射 #coding:utf-8 import base64 import io import logging import picklefrom flask import Flask, jsonify, request from PIL import Image from sklearn import metric…

2018中国自动驾驶市场专题分析

来源&#xff1a;智车科技未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&#…

python写日志

需要再加入按照日期生成日志 #coding:utf-8 import logging import logging.handlers class Logger:logFile def __init__(self, logFile):self.logFile logFileself.logger logging.getLogger(mylogger)self.logger.setLevel(logging.INFO)rf_handler logging.handlers.…

MIT科学家Dimitri P. Bertsekas最新2019出版《强化学习与最优控制》(附书稿PDF讲义)...

来源&#xff1a;专知摘要&#xff1a;MIT科学家Dimitri P. Bertsekas今日发布了一份2019即将出版的《强化学习与最优控制》书稿及讲义&#xff0c;该专著目的在于探索这人工智能与最优控制的共同边界&#xff0c;形成一个可以在任一领域具有背景的人员都可以访问的桥梁。REINF…

yolov3 anchors用kmeans聚类出先验框+anchor宽高比分析

一&#xff0e;yolov v3聚类出框 # -*- coding: utf-8 -*- import numpy as np import random import argparse import os# # 参数名称 # parser argparse.ArgumentParser(description使用该脚本生成YOLO-V3的anchor boxes\n) # parser.add_argument(--input_annotation_txt…

Geoff Hinton:全新的想法将比微小的改进更有影响力

来源&#xff1a;AI科技评论摘要&#xff1a;日前&#xff0c;WIRED 对 Hinton 进行了一次专访&#xff0c;在访谈中&#xff0c;WIRED 针对人工智能带来的道德挑战和面临的挑战等问题进行了提问&#xff0c;以下为谈话内容。“作为一名谷歌高管&#xff0c;我认为在公开场合抱…

修改TOMCAT服务器图标为应用LOGO

在tomcat下部署应用程序&#xff0c;运行后&#xff0c;发现在地址栏中会显示tomcat的小猫咪图标。有时候&#xff0c;我们自己不想显示这个图标&#xff0c;想换成自己定义的的图标&#xff0c;那么按如下方法操作即可&#xff1a; 参考网上的解决方案&#xff1a;1、将$TOMCA…