美文网首页
解析xml文件-NSXMLParser

解析xml文件-NSXMLParser

作者: 不写昵称 | 来源:发表于2018-07-29 18:37 被阅读0次

简介

iOS SDK的NSXMLParser解析XML文档是事件驱动模式的,即采用SAX方式来解析XML格式文档。NSXMLParser在处理XML文档的过程中当遇到一些要素(元素、属性、CDATA块、评论等)时会通知它的委托,而自身不对解析的要素进行任何处理,全权委托给NSXMLParserDelegate处理。同时它也会报告错误。

使用步骤

1. 加载文件
    NSString *pathFile = [[NSBundle mainBundle] bundlePath];
    NSString *path = [[NSString alloc] initWithString:[pathFile stringByAppendingPathComponent:@"XMLTest.xml"]];
    NSURL *xmlURL = [NSURL fileURLWithPath:path];
    NSXMLParser *mparser = [[ NSXMLParser alloc] initWithContentsOfURL:xmlURL];
2. 设置代理
[mparser setDelegate:self];
3、开始解析
    BOOL flag = [mparser parse];//会执行代理方法
    if(flag) {
        NSLog(@"ok");
    }else{
        NSLog(@"获取指定路径的xml文件失败");
    }

//开始解析文件
- (void)parserDidStartDocument:(NSXMLParser *)parser

//遇到节点开始的标志执行,如遇到<result>。通过该方法可以获得节点属性
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict

//遇到节点值或换行时执行,如遇到<result>结果</result>中的“结果”;注意,换行也会执行该方法,可用[string characterAtIndex:0] != '\n'进行判断
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

//遇到节点结束标志时执行,如遇到</result>。换行不会执行该方法
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

//文件解析结束时执行
- (void)parserDidEndDocument:(NSXMLParser *)parser

解析规则

遇到开始节点,如<result>,执行:didStartElement,换行、特殊字符不执行该方法
遇到节点值,如<result>结果</result>,执行foundCharacters
遇到结束节点,如</result>,执行didEndElement,换行、特殊字符不执行该方法
遇到换行,执行foundCharacters

例子:

<result>  //didStartElement(开始节点)--foundCharacters(换行)
    <meeting addr="203"> //didStartElement--foundCharacters
        <creator>张一</creator> //didStartElement--foundCharacters--didEndElement--foundCharacters(换行)
        <member> //didStartElement--foundCharacters
            <name>张二</name> //didStartElement--foundCharacters--didEndElement--foundCharacters(换行)
            <age>20</age> //didStartElement--foundCharacters--didEndElement--foundCharacters(换行)
        </member> //didEndElement--foundCharacters(换行)
</result>//didEndElement--foundCharacters

相关文章

  • 2018-01-02 xml格式数据的请求处理

    用NSXMLParser解析XML文件过程: 1 创建NSXMLParser实例,并传入从服务器接收XML数据。 ...

  • XML

    NSXMLParser解析XML GDataXML解析XML

  • Swift - 解析XML格式数据(分别使用GDataXML和D

    XML解析方式的选择建议 大文件用:NSXMLParser 小文件用:GDataXML 假设需要被解析的XML数据...

  • 解析xml文件-NSXMLParser

    简介 iOS SDK的NSXMLParser解析XML文档是事件驱动模式的,即采用SAX方式来解析XML格式文档。...

  • iOS-->XML文件的两种解析方式

    XML文件解析实例(NSXMLParser) 还是上一个Demo的要求,只是将解析方式由JSON变成XML,那又该...

  • 网络数据解析

    XML文件写法 XML解析 SAX:逐行解析(主类:NSXMLParser) 逐行解析顾名思义就是一行一行的读取解...

  • XML的解析

    XML的解析方式 SAX大小文件都可以NSXMLParser DOM最好是小文件GDataXML NSXMLPar...

  • xml解析

    XML的解析方式 SAX大小文件都可以NSXMLParser DOM最好是小文件GDataXML NSXMLPar...

  • NSXMLParser does not support ree

    今日遇到此问题的前提: 使用iOS系统自带的Xml解析类 NSXMLParser类来进行解析两个xml文件,一个在...

  • XML解析NSXMLParser

    NSXMLParser NSXMLParser采取的是SAX方式解析,特点是事件驱动,下面情况都会通知代理当扫描到...

网友评论

      本文标题:解析xml文件-NSXMLParser

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