• 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模式即可

  • 相关阅读:
    使用C语言实现面相对对象三大特性
    ResNet王者归来:ImageNet上刷新到80.7!
    VAE生成模型
    DeeplabV3++语义分割训练自制数据集
    CUDA编程入门极简教程
    加载预训练模型修改类别数与不修改类别数
    python使用opencv将Labelme生成的分割图转化成二值化分割图
    pytorch 单卡加载多卡模型module
    【pytorch】常用图像处理与数据增强方法合集(torchvision.transforms)(详细)
    C++11:原子交换函数compare_exchange_weak和compare_exchange_strong
  • 原文地址:https://www.cnblogs.com/LDSmallCat/p/4944044.html
Copyright © 2020-2023  润新知