XML数据解析 Dom方式解析

这是一份XML数据,与上一篇文章的JSON数据内容是相同的,上一篇是JSON格式,这篇文章使用的是XML格式的数据

本文以上篇文章的代码为基础修改:

1>数据形式变为XML数据,所以要修改文件的路径

2>因为数据格式不同,所以解析方式不同先采用GData方式解析XML文档

需求:将此XML文档中的数据解析出来,通过tableView展示出来,上一篇文章的需求相同,只是数据与解析方法不同

此处只给出解析本分代码,即JSON解析2文章中代码部分,61--89行部分,开始部分修改文件路径.

使用GData框架解析XML,DOM解析:一次性将文件加载谨内存解析,适合小文件,大文件会造成内存暴涨,操作比较简单.

下面给出解析部分代码:

DOM解析过程:

我们的目的:拿到XML跟元素中的每一个子元素中的属性值,这是我们需要的数据

拿到属性值赋值给我们模型的对应属性,赋值过后即完成数据模型化过程

注意查看XML中的image属性是一个地址,程序运行成功显示在tableView上

的是图片,这些图片是在tableViewCell中设置上去的,通过SDWebImage这个框架

关键点在代码中的数据模型化的几个赋值,通过data数据赋值给模型,模型拿到数据再寻址做事

164行通过model.image这个属性创建了一个url路径,SDWebImage通过这个路径查找到图片进行设置.

点击cell播放视频是通过这里实现的

113行通过model.url创建一个路径,120行通过这个路径做跳转.

其余及格属性是直接取到里面的属性.如name.length等直接赋值给cell的属性,是赋值操作

图片和视频,除了赋值还有寻址等操作,从而实现数据的解析.

66行过后表示客户端向服务器发送请求后,顺利拿到数据,并且无任何错误,说明我们拿到了XML文件的数据

DOM解析方式:一次性拿到文档里面所有东西,加载到内存进行解析

首先设置GDataXMLDocument 表示用拿到的data创建一个GDataXMLDocument对象

这个对象会根据他的根元素来进行进一步解析数据,所以根元素如果有多个会解析错误

根据上面的XML数据格式可以看出跟元素有许多子元素,子元素中的属性才是我们需要的数据

取出根元素的所有子元素存放到数组中,然后遍历这个数组取出每一个子元素.通过

这个方法:attributeForName拿到里面的内容,然后赋值给模型.

DOM解析说明完毕,下面是SDWebImage使用相关注意点

###########

GData是谷歌开发的一个框架,底层是C语言,因为开发多年所以里面有MRC的代码,我们的环境是ARC.

首先要导入头文件:

#import "GDataXMLNode.h"

会发现报错:

1>编译器找不到路径:手动gap苏编译器该文件的路径

2>将这个文件改成MRC模式即可

时间: 2024-12-24 07:20:01

XML数据解析 Dom方式解析的相关文章

XML引入,DOM 方式解析XML 原理,SAX 方式解析XML

XML 简介 Xml(eXtensible Markup Language) 即可扩展标记语言.提供了一套跨平台.跨网络.跨程序的语言的数据描述方式,使用XML 可以方便地实现数据交换.系统配置.内容管理等常见功能. 元素VS 节点 节点包括元素节点.属性节点.文本节点:元素一定是节点,但是节点不一定是元素: <?xml version="1.0" encoding="UTF-8"?> <emp> <empName empNo=&quo

QT开发(四十二)——DOM方式解析XML

QT开发(四十二)--DOM方式解析XML 一.DOM简介 1.DOM简介 DOM是Document Object Model的简写,即XML文档对象模型,是由W3C提出的一种处理XML文档的标准接口. DOM 一次性读入整个XML文档,在内存中构造为一棵树(DOM树)将XML文件表示成一棵树,便于随机访问其中的节点,但消耗内存相对多一些.能够在这棵树上进行导航,比如移动到下一节点或者返回上一节点,也可以对这棵树进行修改,或者是直接将这颗树保存为硬盘上的一个 XML 文件. 2.XML DOM节

XML解析---DOM方式

XML解析方法分为两种:DOM方式和SAX方式 DOM:Document Object Model,文档对象模型.这种方式是W3C推荐处理XML的一种方式 SAX:Simple API for XML.该方式不是官方标准,属于开源社区XML-DEV XML解析开发包 JAXP:SUN公司推出的解析标准实现 Dom4J:开源组织推出的解析开发包 JDOM:同上 JAXP:(Java API for XML Processing)开发包是JavaSE的一部分,它由以下几个包及其子包组成 org.w3

Android学习之XML数据的三种解析方式以及生成XML文件

首先,我得声明,本博客的思想主要参考了此博客:http://blog.csdn.net/liuhe688/article/details/6415593 不过代码我自己一句句敲的 好了,首先讲一下解析XML的三种方式:(恕我粘贴一下哈) SAX解析器: SAX(Simple API for XML)解析器是一种基于事件的解析器,它的核心是事件处理模式,主要是围绕着事件源以及事件处理器来工作的.当事件源产生事件后,调用事件处理器相应的处理方法,一个事件就可以得到处理.在事件源调用事件处理器中特定方

XML —— DOM方式解析XML

1. DOM 方式解析 XML 原理 基于 DOM(Document Object Model,文档对象模型)解析方式,是把整个 XML 文档加载到内存,转化成 DOM 树,因此应用程序可以随机的访问 DOM 树的任何数据: 优点:灵活性强,速度快: 缺点:消耗资源比较多: 2. 元素 VS 节点 ( 节点包含元素 ) 节点包括元素节点.属性节点.文本节点 <!-- students.xml --><?xml version="1.0" encoding="

通过Dom方式解析xml文件

此项目通过简单的天气情况显示来实现xml文件的解析 1. 搭建环境 1)创建如下图的包.类及文件 2)布局文件的大概样式如下图所示,用到四个TextView控件和一个RadioGroup控件 3)china.xml文件的内容如下 <?xml version="1.0" encoding="UTF-8"?> <china dn="day"> <city cityname="南京" pyName=&q

DOM方式解析xml文件查看天气

1.步骤: ①创建文档解析器的工厂对象 ②得到文档解析器对象 ③获取输入流对象 ④通过解析器的parse方法解析is对象 转换成Document对象 ⑤返回的是文档的根节点 ⑥判断是否有孩子节点进行获取子节点转换成元素节点得到属性节点 ⑦得到具体的某个属性节点 2.解析元素节点.属性节点.文本节点: 3.界面搭建 界面搭建的相关代码: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

在iOS 开发中用GDataXML(DOM方式)解析xml文件

因为GDataXML的内部实现是通过DOM方式解析的,而在iOS 开发中用DOM方式解析xml文件,这个时候我们需要开启DOM,因为ios 开发中是不会自动开启的,只有在mac 开发中才自动开启的.我们需要做如下配置: 当配置玩这个操作之后,再次进行编译的时候,系统还是报错,是因为我们还需要进行如下操作:

json格式数据2中方式解析实例

json格式数据2中方式解析实例 json是移动平台上非常常用的数据传输格式,本示例提供了两种Json格式文件生成与解析的方式.第一种通过JsonReader和JsonWriter两个对象进行json文件的读写操作,需要sdk在11以上.第二种通过JSONArray.JSONObject.JSONTokener等对象进行json读写操作,需要sdk在9以上.这种方式也可通过引入jar包的方式在其他版本的sdk中实现.启动客户端后,先点击写入json按钮(第1或3个按钮)生成Json文件(位置为s