美文网首页
IOS中的XML解析

IOS中的XML解析

作者: Helen_kay | 来源:发表于2017-02-21 11:42 被阅读0次

    在iOS中,解析XML的手段有很多

    • 苹果原生
      NSXMLParser:SAX方式解析,使用简单
    • 第三方框架
      libxml2:纯C语言,默认包含在iOS SDK中,同时支持DOM和SAX方式解析
      GDataXML:DOM方式解析,由Google开发,基于libxml2

    XML解析方式的选择建议

    • 大文件:NSXMLParser、libxml2
    • 小文件:GDataXML

    NSXMLParser

    使用步骤
    // 传入XML数据,创建解析器
    NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
    // 设置代理,监听解析过程
    parser.delegate = self;
    // 开始解析
    [parser parse];
    

    NSXMLParser采取的是SAX方式解析,特点是事件驱动,下面情况都会通知代理 当扫描到文档(Document)的开始与结束 当扫描到元素(Element)的开始与结束

    NSXMLParserDelegate

    当扫描到文档的开始时调用(开始解析)
    - (void)parserDidStartDocument:(NSXMLParser *)parser
    
    当扫描到文档的结束时调用(解析完毕)
    - (void)parserDidEndDocument:(NSXMLParser *)parser
    
    当扫描到元素的开始时调用(attributeDict存放着元素的属性)
    - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
    
    当扫描到元素的结束时调用
    - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
    
    JSON和XML比较.png

    相关文章

      网友评论

          本文标题:IOS中的XML解析

          本文链接:https://www.haomeiwen.com/subject/vtnywttx.html