`
z251257144
  • 浏览: 91766 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

[iOS]使用NSXMLParser解析xml文件

    博客分类:
  • iOS
阅读更多
使用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];
分享到:
评论

相关推荐

    使用NSXMLParser解析XML数据

    在Objective-C中,我们可以利用苹果提供的`NSXMLParser`类来解析XML数据。本示例("XMLParserDemo")将深入探讨如何使用`NSXMLParser`进行XML解析。 `NSXMLParser`是Apple的Foundation框架的一部分,它提供了一个...

    IOS解析XML文件

    在iOS开发中,解析XML文件是一项常见的任务,特别是在与服务器进行数据交互时。XML(Extensible Markup Language)是一种用于标记数据的语言,具有良好的结构性和可读性,使得它成为网络数据传输的常用格式。本篇...

    ios xml解析 NSXMLParser

    ios xml解析 NSXMLParser。 NSXMLParser是基于SAX的解析方式。NSXMLParser采用了委托设计模式,因此他的实现类需要采用协议并支持委托。NSXMLParser解析XML需要委托NSXMLParserDelegate实现。

    ios小程序--解析xml文件,读取新闻

    以下是如何使用NSXMLParser解析XML的步骤: 1. 创建一个NSXMLParser对象,传入XML数据源。 2. 实现NSXMLParserDelegate协议,定义处理XML元素开始、结束、属性等事件的方法。 3. 开始解析过程,`[parser parse]`。 ...

    ios 简单xml解析DEMO绝对可用

    XML文件结构清晰,易于理解,但在iOS中解析XML数据并非内置功能,需要借助第三方库或者Apple提供的API。苹果提供了`NSXMLParser`类,这是一个基于事件驱动的XML解析器,适用于小型XML文档。下面我们将详细介绍如何...

    ios应用源码之对xml文件的解析与导出数据存储在xml中(代码)xmlparser 2018127

    总结,iOS应用源码"xmlparser"展示了如何使用`NSXMLParser`解析XML文件,并将解析到的数据存储在模型对象中。同时,源码还可能包含了如何将这些数据重新导出为XML文件的过程。理解并熟练运用XML解析是iOS开发者必备...

    NSXMLParser解析XML

    这篇博客文章可能深入探讨了如何利用`NSXMLParser`来解析XML数据。 `NSXMLParser`是基于事件驱动的解析器,它会逐个处理XML文档的元素、属性和文本。当遇到特定的XML标记时,如开始标签、结束标签或文本节点,`...

    ios中xml解析demo

    GDataXML库(又称libxml2)是一个Objective-C封装的XML解析库,它提供了一种更面向对象的方式来解析XML。与NSXMLParser不同,GDataXML支持XPath查询,允许开发者更方便地定位和提取XML文档中的特定节点。例如,可以...

    iOS xml解析和json解析demo

    总结一下,这个"iOS xml解析和json解析demo"将涵盖如何在iOS应用中解析XML数据,包括使用NSXMLParser和XMLParser,以及如何解析和序列化JSON数据,包括使用内置的JSONSerialization类和可能涉及的一些第三方库。...

    IOS应用源码——对xml文件的解析与导出数据存储在xml中(代码)xmlparser.zip

    总之,这个源码示例可能展示了如何使用NSXMLParser解析XML文件,提取所需数据,并将数据存储回XML文件的过程。通过深入理解XML解析和数据持久化机制,开发者可以更好地处理iOS应用中的数据交换和存储需求。

    IOS应用源码之对xml文件的解析与导出数据存储在xml中(代码)xmlparser .zip

    - 解析XML:调用`parse`方法,如果成功,可以获取到一个`CFXMLNode`对象树。 - 访问节点:通过`CFXMLNode`对象,可以获取元素、属性和文本内容,方便转换成自定义对象。 ```swift let xmlDocument = XMLDocument...

    iOS解析xml通用类

    在iOS中,有多种解析XML的方法,如NSXMLParser、GDataXMLNode和libxml等。libxml是一个功能强大的C语言库,提供了XML解析、DOM操作和XPath等功能,适用于需要高效、低级操作的场景。 在这个通用类中,核心是使用...

    ios-iOS xml解析.zip

    xml解析的两种常用方式, DOM解析:一次性将整个XML文档加载进内存,比较适合解析小文件,例如:GDataXml解析 ...SAX解析:从根元素开始,按顺序一个元素一个元素往下解析,比较适合解析大文件,例如:NSXMLParser解析

    IOS版本XML解析类

    原生的iOS SDK提供了一个叫做NSXMLParser的类来处理XML解析,但它的使用相对复杂,且对于大型或复杂的XML文档可能效率不高。因此,"IOS版本XML解析类"通常指的是第三方库,如GDataXML,这是一个在Objective-C中实现...

    ios xml解析

    本文将深入探讨两种在iOS中解析XML的主要方法:苹果自带的NSXMLParser以及第三方库TBXML。 首先,苹果提供的NSXMLParser是Objective-C中的一个类,它遵循事件驱动的模型来解析XML文档。当XML文档被解析时,...

    ios-XML解析.zip

    总之,“ios-XML解析.zip”这个资源可能包含了关于如何在iOS应用中使用XML解析器(如`NSXMLParser`或`XMLParser`)解析XML数据,并将解析结果展示在表格视图上的示例代码和指南。通过学习和实践这些内容,开发者可以...

    iOSXML数据解析

    在iOS中,XML解析通常有以下几种方式:NSXMLParser、GDataXML、XMLReader以及libxml2库。其中,XMLReader因其性能和内存管理的优势,成为处理大量XML数据的理想选择。 首先,我们需要了解XML的基本结构。XML文档由...

    IOS应用源码——XML解析.rar

    此压缩包"IOS应用源码——XML解析.rar"包含的源码示例,很可能是用于演示如何在iOS应用中解析XML数据。在本文中,我们将深入探讨iOS中的XML解析技术,并通过相关知识点的详细讲解,帮助你理解和掌握这一技能。 首先...

    ios-轻松解决xml解析问题.zip

    在解析XML数据前,设计好对应的数据模型,这将帮助你更好地组织和处理解析结果。可以创建自定义的类来表示XML文档的元素和属性。 综上所述,解决iOS中的XML解析问题涉及选择合适的解析器,理解和实现解析器的代理...

    IOS中XML解析类

    NSXMLParser遵循SAX事件驱动的解析模型,它在解析XML文件时会触发一系列的代理方法。开发者需要实现这些方法来处理解析过程中的事件,如元素开始、结束、字符数据等。这种方式内存占用低,但需要编写较多的代码来...

Global site tag (gtag.js) - Google Analytics