zoukankan      html  css  js  c++  java
  • XML数据解析(元素属性) SAX方式NSParser代理

    本文使用的XML文档格式

    SAX解析XML数据是一行一行的解析,DOM方式将整个文档加入内存解析方式不同,

    SAX解析使用NSParser(apple自带框架)DOM依靠GData(谷歌开发)

    SAX解析数据原理:事件驱动,每发现一个元素就通知代理,在代理方法中将发现的元素封装存储到字典中,我们通过遍历字典拿到发现的每个元素,模型化后存放在数据源数组中

    下面给出这个XML文档的SAX解析代码,其余部分代码与前面几篇文章相同

    SAX解析常用的代理方法:(都是代理方法,解析器发现一个数据就通知对应代理方法,事件驱动)

    方法执行顺序见下图打印结果,都是成对出现,发现文档与结束文档相对应,发现元素与元素结束相对应.

    根据不同情况与需求选择在恰当的方法中执行相应的代码.上篇文章选择didStartElement这个方法中实现数据模型化操作,发现一个跟元素(videos)的子元素(video)就创建一个模型,传递数据后添加到数组中.XML文档中有多少个video元素数组的长度与之对应,

    下面单独说一下这个方法:

    这个方法中其他的参数不知道是干什么的,只发现字典里面有我们需要的数据

    这篇文章使用的XML形式,本文使用的方法是didStartElement,这个方法在解析器发现元素的时候通知代理,自动调用,此时附带元素的属性值在内我们都可以获取到,

    这是下一篇文章要使用的XML数据,我们需要获取到元素的内容,而非元素(元素属性).注意区分XML这两种形式,清楚我们需要的是哪些数据,注意需要的数据元素(属性),还是元内容.文档格式不同,我们需要的数据锁在的位置不同,意味着我们解析的方式也会不同.

  • 相关阅读:
    XCode 7 运行 cocos2dx 2.2.6问题小节
    SerializeField和Serializable
    convert2utf8withbom
    NGUI制作字体的三种方法
    js json stringify
    nodejs npm 使用淘宝 NPM 镜像
    js url?callback=xxx xxx的介绍
    强引用 弱引用
    关于xml里的encoding
    js 历史
  • 原文地址:https://www.cnblogs.com/LDSmallCat/p/4945885.html
Copyright © 2011-2022 走看看