zoukankan      html  css  js  c++  java
  • iOS中XML的相关知识

      1.什么是XML

      “当 XML(扩展标记语言)于 1998 年 2 月被引入软件工业界时,它给整个行业带来了一场风暴。有史以来第一次,这个世界拥有了一种用来结构化文档和数据的通用且适应性强的格式,它不仅仅可以用于 WEB,而且可以被用于任何地方。”

    ---《Designing With Web Standards Second Edition》, Jeffrey Zeldman

     

      XML是作为一种数据格式,主要用于描述数据和存储数据

      

      2.一个常见的XML数据一般有以下部分组成

      文档声明

      元素节点(Element)

      属性(Attribute)

      

     

      3.XML解析

      XML解析:通过XML格式,提取XML描述的数据

      XML主要有两种解析方式:DOM和SAX

        DOM解析:读入整个XML文档并且构建一个驻留在内存的树结构(节点数),通过遍历数的结构可以检索任意XML节点,读取它的属性和值

        SAX解析:是一个基于通知的模式,一边读取XML文档一边处理,不必等整个文档加载完成后才采取操作,一边读取节点,一边处理数据

        DOM解析使用于小数据量的XML,SAX解析适用于大数据量的XML

      4.XML解析框架

      iOS SDK提供:NSXMLParser和libxml2两个类库

      第三方框架:TBXML、TouchXML、KissXML、TinyXML和GDataXML

      解析框架的对比

      

      5、我们该怎么选择

         读取小XML,支持XPath,建议使用TouchXML、KissXML、GDataXML

         读取、写入小XML,建议使用KissXML或者GDataXML

         读取大XML(需要性能),建议使用TBXM、libXML

        第三方框架NSXML(NSXMLParser)

     6、GDataXMLNode框架的使用

      Github下载地址https://github.com/wddonline/GDataXMLNode

      分为下列几项步骤

        1.导入libxml2.2.tbd

        2.在编译之前,找到Header Search Paths 输入/usr/include/libxml2

        3.先编译一下,查看是不是错误

      读取XML

      

      向XML中写入数据

      

     使用Xpath进行读写

      

    -(void)readXMLXpath{
        
        NSString *filePath  = [[NSBundle mainBundle]pathForResource:@"xml2" ofType:@"xml"];
        NSData *data = [NSData dataWithContentsOfFile:filePath];
        
        
        GDataXMLDocument *doc = [[GDataXMLDocument alloc]initWithData:data error:nil];
        
    
        NSString *Xpath = @"/catalog/cd/price";
        
        NSArray *array = [doc nodesForXPath:Xpath error:nil];
        
        
        for (GDataXMLElement *string in array) {
            NSLog(@"节点名%@    节点值%@ ",string.name,string.stringValue);
        }
    }
    

      

  • 相关阅读:
    爬虫与自动化实战,帮助小姐姐刷抖音完全解放掉双手
    推荐 5 个实用的黑科技网站,建议收藏!
    最全总结!聊聊 Python 发送邮件的几种方式
    推荐 iOS 上的一款黑科技自动化脚本:捷径
    拒绝降权!教你用 Python 确保制作的短视频独一无二
    推荐几款优质 Chrome 摸鱼插件,带你畅快划水
    再推荐 5 款私藏的优质 Chrome 插件
    如何利用 Python 爬虫实现给微信群发新闻早报?(详细)
    暑期辅导java方向计划(针对大二大三等小白)
    我用数据结构花了一夜给女朋友写了个h5走迷宫小游戏
  • 原文地址:https://www.cnblogs.com/Moshimol/p/5693090.html
Copyright © 2011-2022 走看看