XML数据的解析
XML数据的解析
相比于JSON数据解析而言,XML数据解析可能会让更多的童鞋感觉到吃力,对我来说,同样认为JSON数据好像让人感觉比较友好,不过对于程序开发者来说,无非就是这两种数据解析占比较大的部分,其中JSON数据占80%,而XML只占到20%,虽然大部分还是JSON的天下,但我们也不能掉以轻心,不能忽略这20%的XML,听完今天老师的课程,我做了如下总结,更多总结见我个人博客。
下面给大家看两个图片,这两个图片就是传说中的JSON和XML数据,要对他们进行解析,估计很多同仁都像我一样,第一眼看上去,哎呀妈呀,是不是都有一种晕倒在厕所的感觉,不管你有没有,反正我是有的。
JSON

XML

那么我们应该如何面对这些看上去复杂的数据呢,下面将一种方法,主要是用第三方解析方法进行解析,在Xcode中导入第三方头文件,首先我们打开神器Xcode,进入如下页面,
1,第一步,点击工程文件,可以看到下面的页面

2,第二步,点击Build Phases,找到Search Paths中的Header Search Paths,点击右边的方框的东西,双击。

3,第三步,双击之后,看到如图所示的方框,点击“+”号,填入箭头所指的路径

4,第四步,找到Link Binary With Libraries(1 item),点击“+”,把方框内的内容放到搜索框里搜索,我这里是加好的,没加之前是看不到方框这里的内容的,搜到之后点击添加即可

5,第五步,找到刚才的第三方*.m文件,点击,双击,然后输入方框内的内容,这里的作用就是告诉编译器,这里将不启用自动内存管理机制

6,第六步,好戏就要开始了,如图,将第三方的*.h 和*.m文件拖到工程之中,并在main函数中包含头文件,一切正常的话,应该是如图所示的样子。

7,第七步,将文件的路径传进来,相信这步大家都是非常熟悉的,这里就不解析了

8,第八步,我们来尝试着在文件进行解析之后获取CityName这个元素,代码如下,通过代码,我们成功获取了该数据,进行输出试验

9,第九步,我们来看一个比较复杂的一个元素下面又有三个元素的嵌套数据,根据代码显示,因为该方法是返回一个数组,所以这里我们选择一个作为例子,就取数组第一个数IntentionLevelArray[0],将其属性打印出来

10,第十步,最后一个例子,比上面的稍微更复杂一点,如图,用//Item,要活的所有Item节点下的数据,不管Item在哪里,还有一个就是用@//value,用来获取所有value的属性值,不管value在哪里!

通过以上代码的实现,估计很多童鞋都思维清晰了吧,以后遇到这样的数据还得认真分析,才能将其克服,希望大家能够掌握这种方法,如果有哪里不对的地方,请指出来,根据上面的代码如果程序没有错误,打印出来的结果应该是如下图的样子的。

XML数据的解析的更多相关文章
- json和xml数据的解析
一 json数据 1一条json就像一个对象,也想像OC中的数组,且内嵌了很多键值对字典 {"name" : "jack", "age" : ...
- iOS开发网络篇—XML数据的解析
iOS开发网络篇—XML数据的解析 iOS开发网络篇—XML介绍 一.XML简单介绍 XML:全称是Extensible Markup Language,译作“可扩展标记语言” 跟JSON一样,也是 ...
- android基础---->XMl数据的解析
在网络上传输数据时最常用的格式有两种,XML和JSON,下面首先学一下如何解析XML格式的数据,JSON的解析可以参见我的博客(android基础---->JSON数据的解析).解析XML 格式 ...
- 多线程与网络之JSON和XML数据的解析
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- cURL模拟POST方法提交XML数据并解析
php编程中会用到xml格式传送数据,这里演示下php以post形式发送xml,服务器接收,并解析xml的过程! post_xml.php源码: <?php header("Conte ...
- Android网络之数据解析----SAX方式解析XML数据
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- iOS 详解NSXMLParser方法解析XML数据方法
前一篇文章已经介绍了如何通过URL从网络上获取xml数据.下面介绍如何将获取到的数据进行解析. 下面先看看xml的数据格式吧! <?xml version="1.0" enc ...
- WebService传递XML数据 C#DataSet操作XML 解析WebService返回的XML数据
Webservice传递的数据只能是序列化的数据,典型的就是xml数据. /// <summary> /// 通过用户名和密码 返回下行数据 /// & ...
- (四)SAX方式解析XML数据
SAX方式解析XML数据 文章来源:http://www.cnblogs.com/smyhvae/p/4044170.html 一.XML和Json数据的引入: 通常情况下,每个需要访问网络的应用程 ...
随机推荐
- android面试宝典
一.listview的优化: 首先要知道getview实际就是个for循环. 我们重写的getview方法中本身有一个convertview,因为只需要保留能够显示的最大个数的view即可,所以: 第 ...
- 怎么使用Delphi获取当前的时间,精确到毫秒
先介绍一个可能比较常用的方法,获取当前时间 var datetime: string; begin datetime:= FormatDateTime('yyyy-mm-dd hh:mm:ss', N ...
- 字符串和datatime.time类型转为秒
前言 折腾了好久,还是得养成看帮助文档和help的习惯 知识 datetime模块中定义的类 datetime.date 表示日期的类,常用属性:year, month, day datetime.t ...
- 【转】C# 控件的自定义拖动、改变大小方法
在用VS的窗体设计器时,我们可以发现控件都是可以拖动的,并且还可以调整大小.怎么在自己的程序中可以使用上述功能呢? 下面的方法值得借鉴! using System; using System.Wind ...
- openfl使用64位的ndk时,编译报错的问题!
当使用64位的ndk时,如果使用openfl test android运行android测试,应该会出现 arm-linux-androideabi-g++:找不到这个命令的错误. 原因是,haxel ...
- CentOS 6.4下编译安装MySQL 5.6.14
概述: CentOS 6.4下通过yum安装的MySQL是5.1版的,比较老,所以就想通过源代码安装高版本的5.6.14. 正文: 一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server ...
- Codeforces Round #259 (Div. 2)
A. Little Pony and Crystal Mine 水题,每行D的个数为1,3.......n-2,n,n-2,.....3,1,然后打印即可 #include <iostream& ...
- 【填坑向】bzoj2038小Z的袜子 莫队
学莫队必做题,,,但是懒得写.今天来填个坑 莫队水题 莫队实际上就是按一个玄学顺序来离线计算询问,保证复杂度只会多一个n1/2,感觉是玄学(离线算法都很玄学) 易错点:要开long long(卡我半天 ...
- javascript Date format(js日期格式化) (转)
方法一:这个很不错,好像是 csdn 的 Meizz 写的: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) ...
- 【逆向篇】分析一段简单的ShellCode——从TEB到函数地址获取
其实分在逆向篇不太合适,因为并没有逆向什么程序. 在http://www.exploit-db.com/exploits/28996/上看到这么一段最简单的ShellCode,其中的技术也是比较常见的 ...