zoukankan      html  css  js  c++  java
  • XML、JSON数据结构解析

    一、XML的解析

    XML的解析分为SAX解析和DOM解析,DOM解析又分为根节点解析和叶子节点解析。

    1.SAX解析步骤

    a.获取XML数据存储的文件路径(假如XML文件为Students.xml)

        NSString *filePath = [[NSBundle mainBundle]pathForResource:@"Students" ofType:@"xml"];

     b.创建解析对象

        //创建二进制数据对象

        NSData *data = [NSData dataWithContentsOfFile:filePath];

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

    c.设置代理人

       parser.delegate = self;

    d .开始解析

        [parser parse];

    e.释放所有权

        [parser release];

    2.需要实现NSXMLParserDelegate代理的方法

    //当开始解析的时候调用

    - (void)parserDidStartDocument:(NSXMLParser *)parser;

    //当结束解析的时候调用

    - (void)parserDidEndDocument:(NSXMLParser *)parser;

    //该方法单个读取到开始标签的时候调用

    - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {

        /*

         elementName:标签的名字

         namespaceURI:标签前缀的唯一标识(不经常使用)

         qName:标签的前缀

         attributeDict:存储标签属性的内容

         */

        }

    //该方法单个读取到结束标签的时候调用

    - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName ;

    //当读取到标签之间的数据的时候调用

    - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string ;

  • 相关阅读:
    ZKW费用流修正
    BZOJ 1060 [ZJOI2007]时态同步
    BZOJ 1059 [ZJOI2007]矩阵游戏
    腾讯WEB前端开发面试经历,一面二面HR面,面面不到!
    亲历腾讯WEB前端开发三轮面试经历及面试题
    2015大型互联网公司校招都开始了,薪资你准备好了嘛?
    10款最好的 Bootstrap 3.0 免费主题和模板
    python3之urllib基础
    python3下应用requests
    python心得二(编码问题)
  • 原文地址:https://www.cnblogs.com/zyqc/p/4725517.html
Copyright © 2011-2022 走看看