• iOS之文件解析


    JSON

    JSON – OC 转换对照表

    JSON OC
    {} NSDictonary
    [] NSArray
    "" NSString
    数字 10,10.5 NSNumber

    NSJSONSerialization的常见方法

    JSON数据 -> OC对象

    + (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;

    OC对象 -> JSON数据 

    + (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error;

    XML

    一个常见的XML文档一般由以下部分组成

    文档声明

    元素(Element)

    属性(Attribute)

    一个元素可以拥有多个属性

    <video name="Jack 第01部" length="30" />

    video元素拥有name和length两个属性

    属性值必须用 双引号"" 或者 单引号'' 括住

    实际上,属性表示的信息也可以用子元素来表示,比如

    <video>

        <name>Jack 第01部</name>

            <length>30</length>

    </video>

    注意:

    1.XML中的所有空格和换行,都会当做具体内容处理

    2.JSON的体积小于XML,所以服务器返回给移动端的数据格式以JSON居多

    XML的解析方式有2种

    DOM:一次性将整个XML文档加载进内存,比较适合解析小文件

    SAX:从根元素开始,按顺序一个元素一个元素往下解析,比较适合解析大文件

    XML解析方式的选择建议

    大文件:NSXMLParser(苹果原生,SAX方式解析,使用简单)、libxml2(纯C语言,默认包含在iOS SDK中,同时支持DOM和SAX方式解析)

    小文件:GDataXML(DOM方式解析,由Google开发,基于libxml2)

    NSXMLParser

    使用步骤

    1 传入XML数据,创建解析器

    NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];

    2 设置代理,监听解析过程

    parser.delegate = self;

    3 开始解析

    [parser parse];

    NSXMLParser采取的是SAX方式解析,特点是事件驱动,下面情况都会通知代理

    当扫描到文档(Document)的开始与结束

    当扫描到元素(Element)的开始与结束

    GDataXML

    GDataXML中常用的类

    GDataXMLDocument:代表整个XML文档

    GDataXMLElement代表文档中的每个元素

    使用attributeForName:方法可以获得属性值

  • 相关阅读:
    git使用代理
    反汇编一个c程序
    Berkeley套接字
    ubuntu 升级
    ubuntu备份与还原
    struct socket 结构详解
    How sockets work
    wget中文乱码问题
    ubuntu配置开机启动服务
    《javascript设计模式》笔记之第五章:单体模式
  • 原文地址:https://www.cnblogs.com/H7N9/p/4900692.html
Copyright © 2020-2023  润新知