`

NSXMLParser解析php的xml

阅读更多

 

// parser  xml

解析xml需要NSXMLParserDelegate 协议,然后再实现类中完成重写parser等方法

NSAutoreleasePool 这个一定要有,不然会报错

一定要记得,在分析XML的时候,xml格式是如下的话,是从item开始读取,而不是aaa表节点,不然只读取依次循环就没有了。

<item>

   <aaa>

         <tt>  fsdfs</tt>

         <bb>fsdlkfjkls</bb>

   </aaa>

  <aaa>

         <tt>  fdsfds</tt>

         <bb>fwefwwe</bb>

   </aaa>

</item>


//interface  

#import <Foundation/Foundation.h>

@interface IVPaserXMLSingleton : NSObject<NSXMLParserDelegate > {

         NSMutableString   *currentString ;

         NSString   *currentElement ;

}

@property   (nonatomic ,retain )NSMutableString  *currentString;

@property   (nonatomic ,retain )NSString       *currentElement;

-(void )getData:(NSString *)urlStr;

@end

 

 

 

//implements  class

#import "IVPaserXMLSingleton.h"

#import "UserInfo.h"

@implementation IVPaserXMLSingleton

@synthesize   currentString,currentElement;

-(void )getData:(NSString *)urlStr

{

         [NSThread   detachNewThreadSelector :@selector (parserData :) toTarget :self withObject :[NSURL URLWithString :urlStr]];

}

-(void )parserData:(NSURL *)url

{

         NSAutoreleasePool   *pool=[[NSAutoreleasePool   alloc ]  init ];

         NSXMLParser   *parser=[[NSXMLParser alloc ]  initWithContentsOfURL :url];

         [parser  setDelegate :self ];

         [parser  setShouldProcessNamespaces :YES ];

         [parser  setShouldReportNamespacePrefixes :YES ];

         [parser  setShouldResolveExternalEntities :NO ];

         [parser  parse ];

         [pool  drain ];

}

 

 

//start  element

- (void )parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName

  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

         attributes:(NSDictionary *)attributeDict

{

         [currentElement   release ];

         currentElement =[elementName  copy ];

         //NSLog(qName);

         //NSLog(@"I Jus  found  a start tag for %@",elementName);

         if ([currentElement   isEqualToString :@"item" ])

         {

              //NSLog(@"begin");

              //[self  performSelectorOnMainThread:@selector(create) withObject:nil waitUntilDone:YES];

         }

         else if ([currentElement isEqualToString :@"UserInfo" ])

         {

              self .currentString =[NSMutableString   string ];

         }

}

 

 

//found  character

-(void )parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

{

    if ([currentElement isEqualToString :@"Id" ]){

      //   [currentString  appendString:string];

              // [currentString  appendString:@"   "];

         }

    else if ([currentElement isEqualToString :@"UserId" ]) {

              // [currentString  appendString:string];

              // [currentString  appendString:@"   "];

         }

         else if ([currentElement isEqualToString :@"Name" ]) {

                [currentString   appendString :string];

              // [currentString  appendString:@"   "];

         }

         else if ([currentElement   isEqualToString :@"Sex" ])

         {

              // [currentString  appendString:string];

              // [currentString  appendString:@"   "];

         }

         else   if ([currentElement   isEqualToString :@"Age" ])

         {

              //[currentString  appendString:string];

              //[currentString  appendString:@"   "];

         }

}

 

 

//parser  over

-(void )parserDidEndDocument:(NSXMLParser *)parser

{

         NSLog (@"Document  finished!!!" );

}

 

 

//end element

-(void )parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName

  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

{

         if([elementName  isEqualToStr ing:@"Id" ])

         {

         //   NSLog(curr entString);

         }

         else if ([ currentElement isEqualToString :@"UserId"]) {

         //   NSLog(current String);

         }

    else if ([currentElement isEqualToStri ng:@"Name "]) {

         //   NSLog(cur rentString);

         }

         else if ([currentElement  isEqualToStri ng:@"Sex" ])

         {

         //   NSLog(cur rentString);

         }

         else if ([currentElem ent  isEqualTo String:@"Age"])

         {

              NSL og(currentString) ;

         }

} 

@end

分享到:
评论

相关推荐

    使用NSXMLParser解析XML数据

    使用NSXMLParser解析XML数据的一个Demo

    ios xml解析 NSXMLParser

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

    NSXMLParser解析XML

    NULL 博文链接:https://eric-gao.iteye.com/blog/1590902

    iphone NSXMLParser

    代码例子(关于NSXMLParser 解析xml文件) xml 文件 通过NSXMLParser 解析成为数组 元素内容与属性可以获取到

    ios-iOS xml解析.zip

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

    iphone Reachability NSConnection NSXMLParser

    Reachability 2.0版本,确认网络环境3G/WIFI 使用NSConnection下载数据 使用NSXMLParser解析xml文件

    xmlparsing-with-nsxmlparser-tutorial:使用NSXMLParser进行XMLParsing-教程

    xmlparsing-with-nsxmlparser-tutorial 你可以找到的NSXMLParser完整XMLParsing -教程这里 。 本教程由最好的The App Guruz提供。

    Soap请求网络数据

    通过SOAP 网络请求数据,并使用NSXMLParser解析Xml

    iOSXML解析器SHXMLParser.zip

    SHXMLParser 是一个基于 NSXMLParser 构建的易用的 XML 解析器,可转换 XML 数据到 Objective-C 对象。 标签:SHXMLParser

    iOS开发中常见的解析XML的类库以及简要安装方法

    在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML、TouchXML、KissXML、TinyXML和GDataXML。问题是应该选择哪一个呢? 解析 XML 通常有两...

    iPhone编程解析xml

    本程序演示了如何连接浏览器,如何获取数据并解析xml文件。

    iOS开发使用XML解析网络数据

    前言:本篇随笔介绍的是XML解析。 正文: 1、XML解析方式有2两种: DOM:一次性将整个XML数据加载进内存进行解析,比较适合解析小文件SAX:从根元素开始,按顺序... 2-3、本人基于苹果原生NSXMLParser封装好的XML解析

    ReactiveNSXMLParser:NSXMLParser的ReactiveCocoa扩展

    用于NSXMLParser的ReactiveCocoa扩展:一种简洁的,基于流的API,用于使用NSXMLParser解析XML。 围绕定义包装器,从而不再需要实现繁琐的委托方法。 应用所需的任何ReactiveCocoa魔术(请参阅 ): # import " ...

    使用Swift实现iOS App中解析XML格式数据的教程

    主要介绍了使用Swift实现iOS App中解析XML格式数据的教程,讲到了iOS中提供的NSXMLParser和NSXMLParserDelegate两个API的用法,需要的朋友可以参考下

    ios-XMLDictionary.zip

    xml转字典,采用系统NSXMLParser解析,轻轻松松一句代码完成xml转换字典操作

    iphone中xml的解析demo

    使用iphoneSDK官方NSXMLParserDelegate做的简单xml解析,附带详细注释以及使用到的方法的详细解释,灰常适合新手,高手请留下你们的改进意见。

    在Swift中实现的简单XML解析器-Swift开发

    在Swift中实现的简单XML解析器这是什么? 这是一个受SwiftyJSON和SWXMLHash启发的XML解析器。 Foundation框架中的NSXMLParser是一种“ SAX”解析器。 它具有足够的性能,但是在Swift中实现了一点inc Simple XML ...

    Objective-c对象组装XML

    NSXMLParser *xmlRead = [[NSXMLParser alloc] initWithData:xmlData]; [xmlRead setDelegate:self]; [xmlRead parse]; [xmlRead release]; //get dataTemplate for (int i=0;i&lt;[objects count]; i++) { ...

    NSXMLParser Demo

    一个使用ios自带的NSXMLParser的demo,课供新手参考学习

    SwiftRSSReader:使用Swift 2,Xcode 7,iOS 9构建RSS Reader演示应用程序

    概述基于Swift的RSS阅读器,可将rss feed作为xml从远程服务器加载,并使用NSXMLParser对其进行解析。 解析完成后,它将数据加载到UITableView即显示标题和日期。 当单击标题时,它将转到详细信息页面,在该页面中,...

Global site tag (gtag.js) - Google Analytics