使用NSXMLParser解析xml文件

1. 设置委托对象,开始解析 
    NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];   //或者也可以使用initWithContentsOfURL直接下载文件,但是有一个原因不这么做: 
    // It's also possible to have NSXMLParser download the data, by passing it a URL, but this is not desirable 
    // because it gives less control over the network, particularly in responding to connection errors. 
    [parser setDelegate:self]; 
    [parser parse];

2. 常用的委托方法 
    - (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; 
    - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string; 
    - (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError;

static NSString *feedURLString = @"http://www.yifeiyang.net/test/test.xml";

3.  应用举例 
    - (void)parseXMLFileAtURL:(NSURL *)URL parseError:(NSError **)error 
    { 
        NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:URL]; 
        [parser setDelegate:self]; 
        [parser setShouldProcessNamespaces:NO]; 
        [parser setShouldReportNamespacePrefixes:NO]; 
        [parser setShouldResolveExternalEntities:NO]; 
        [parser parse]; 
        NSError *parseError = [parser parserError]; 
        if (parseError && error) { 
            *error = parseError; 
        } 
        [parser release]; 
    }

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI 
                                        qualifiedName:(NSString*)qName attributes:(NSDictionary *)attributeDict{ 
        // 元素开始句柄 
        if (qName) { 
            elementName = qName; 
        } 
        if ([elementName isEqualToString:@"user"]) { 
            // 输出属性值 
            NSLog(@"Name is %@ , Age is %@", [attributeDict objectForKey:@"name"], [attributeDict objectForKey:@"age"]); 
        } 
    }

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI 
                                        qualifiedName:(NSString *)qName 
    { 
        // 元素终了句柄 
        if (qName) { 
               elementName = qName; 
        } 
    }

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
    { 
        // 取得元素的text 
    } 
    NSError *parseError = nil; 
    [self parseXMLFileAtURL:[NSURL URLWithString:feedURLString] parseError:&parseError];

http://blog.csdn.net/z251257144/article/details/7175634

转载于:https://www.cnblogs.com/geek6/p/3950949.html

XML专题:使用NSXMLParser解析xml文件相关推荐

  1. ios15使用NSXMLParser解析XML

    ios15解析XML 今天我们使用NSXMLParser这个类解析XML. 解析的类必须遵守NSXMLParserDelegate代理. - (void)viewDidLoad {[super vie ...

  2. python读取xml标注坐标_遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件...

    XML文件??? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 里面的标签都是可以随心所欲的按照他的命名规则来定义的,文件名为roi.xm ...

  3. java解析xml文档_Java解析xml文件

    读xml文件: xml文件内容: Java Eclipse Swift Xcode C# Visual Studio 代码: package XMLParse; import java.io.File ...

  4. python etree模块所有函数详解_Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件,封装函数...

    from xml.dom.minidom importparse, parseStringfrom xml.etree importElementTreeimportxml.dom.minidom&q ...

  5. java dom 解析xml 例子,Java DOM解析XML的幾個例子

    Sample1: 1:新建XML文檔 books.xml,放到項目的根目錄下. xmlns="http://test.org/books"> Thinking in JAVA ...

  6. xml教程之java解析xml文档

    1.java解析xml文件介绍 XML解析方式分为两种:DOM方式和SAX方式 DOM:Document Object Model,文档对象模型.这种方式是W3C推荐的处理XML的一种方式. SAX: ...

  7. python解析xml生成代码_python解析xml模块封装代码

    有如下的xml文件: 复制代码 代码如下: 1 2 下面介绍python解析xml文件的几种方法,使用python模块实现. 方式1,python模块实现自动遍历所有节点: 复制代码 代码如下: #! ...

  8. php xml 实例教程,php解析xml方法实例详解,解析xml实例详解_PHP教程

    php解析xml方法实例详解,解析xml实例详解 本文以实例形式详细讲述了php解析xml方法.分享给大家供大家参考.具体分析如下: books.xml文件如下: Harry Potter J K. ...

  9. XML简介与Dom4j解析XML

    文章目录 一.XML简介 1.什么是 XML 2.XML 的主要作用 3.XML 与 HTML 4.XML 属性 5.XML语法规则 二.Dom4j解析XML 1.树结构与xml文件的解析技术 1.1 ...

最新文章

  1. 2021年大数据ELK(二十二):采集Apache Web服务器日志
  2. Python字符串编码坑彻底详细解决 何梁
  3. python线下培训-济南Python线下培训班哪个好
  4. 安装vsftpd-3.0.2.tar.gz源码
  5. java url特殊字符处理_简单实例处理url特殊符号处理(2种方法)
  6. 由电脑黑屏问题引发的探讨计算机底层原理
  7. 机房收费系统----可行性分析报告
  8. 在Linux下通过Wake On LAN实现网络唤醒远程开机
  9. 高斯噪声和椒盐噪声python
  10. UI设计灵感|高级黑网页首图就该这样设计
  11. Win-MASM64汇编语言-CMPXCHG指令
  12. 说三件可能你不知道的小事
  13. 回归系数t检验公式_最全物理公式合集,高考这一份就够了!
  14. SanDisk cz48 16G TLC U盘量产经验分享
  15. 去中介化的租房EOS DAPP,实现租客与房东互赢
  16. rust修改礼包时间_Rust Async: futures-timer源码解析
  17. 运用计算机巧记英语词汇,词根词缀法巧记考研英语词汇:词根graph-(写)
  18. 在国内用Windows给BT做种,真是一山绕过一山缠(附解决方案)
  19. 画E-R图·数据库笔记(四)
  20. MoviePy - 中文文档4-MoviePy实战案例-给MoviePy Logo做一个闪动的阴影效果

热门文章

  1. 何必分个孰优孰劣呢?!
  2. Java基础学习总结(31)——Java思维导图
  3. LVS +DR +keepalived高可用性web集群
  4. RHEL7恢复root密码
  5. Sencha应用程序的UI测试
  6. 为Office Communicator启用超链接
  7. ASP.NET十七种正则表达试
  8. new Vue 发生了什么
  9. scala 处理 Response返回 时间报错问题
  10. ASP.NET: 简要分析Table类的使用