zoukankan      html  css  js  c++  java
  • 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:方法可以获得属性值

  • 相关阅读:
    WordPress主题开发实例:查询单篇文章
    WordPress基础:get_page_link获取页面地址
    WordPress主题开发:优化标题
    React中的的JSX
    WordPress主题开发:WP_Query常用参数
    WordPress基础:wp_list_pages显示页面信息列表
    WordPress基础:常用分类列表wp_list_categories
    SQL Server 2008 安装教程
    XCODE调试时不显示变量值/指针地址的解决方案
    android iOS 编码问题害死人!
  • 原文地址:https://www.cnblogs.com/H7N9/p/4900692.html
Copyright © 2011-2022 走看看