好贷网好贷款

XML解析,NSXMLParser

发布时间:2016-12-5 6:17:43 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"XML解析,NSXMLParser",主要涉及到XML解析,NSXMLParser方面的内容,对于XML解析,NSXMLParser感兴趣的同学可以参考一下。

原文地址:XML解析,NSXMLParser作者:殷昭要转载请表明链接地址:http://blog.sina.com.cn/bbsme 1,首先获取文件目录     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);          NSString *documentsDirectory = [paths objectAtIndex:0];         chatFile = [[NSString alloc] initWithString:[documentsDirectory stringByAppendingPathComponent:CHATSFILE_NAME]]; 2,加载文件     - (void) loadThread:(NSString *)xmlFile {      NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];      NSXMLParser *chatLogParser = [[NSXMLParser alloc] initWithContentsOfURL:[NSURLfileURLWithPath:xmlFile]];      [chatLogParser setDelegate:self];      [currentString setString:@""];//记录当前节点的值      [currentChatInfo removeAllObjects];//节点对象      [chatLogParser parse];//开始XML解析      chatLogParser release];      [self performSelectorOnMainThread:@selector(finshLoadFile) withObject:nil waitUntilDone:YES];//创建线程      [pool release]; } 3.代理方法 #pragma mark - #pragma mark xml work methods #define head @"moods" //定义的事例节点 #define parent @"mood"  //定义的事例节点 #define child_speaker   @"speaker"  //定义的事例节点 #define child_date @"time"  //定义的事例节点 #define child_text      @"text"  //定义的事例节点 - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {            if ([elementName isEqualToString:head]) {                       [chatArray removeAllObjects];//移除临时对象             } else if ([elementName isEqualToString:parent]) {                       [currentChatInfo removeAllObjects];//移除临时对象的节点             } else if ([elementName isEqualToString:child_speaker] ||                     [elementName isEqualToString:child_text] ||                    [elementName isEqualToString:child_date]) {                                [currentString setString:@""];//设置当前临时节点值为NULL                                storingCharacters = YES;              } } - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {        if([elementName isEqualToString:head]){        }else if([elementName isEqualToString:parent]){                [chatArray addObject:[NSDictionary dictionaryWithDictionary:currentChatInfo]];        }else if ([elementName isEqualToString:child_speaker] ||                 [elementName isEqualToString:child_text] ||                [elementName isEqualToString:child_date]) {                       [currentChatInfo setObject:[NSString stringWithString:currentString] forKey:elementName];//创建对象        }      storingCharacters = NO; } - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string  {              if (storingCharacters) [currentString appendString:string];//拼接当前节点的值 } 我的百度博客地址:http://hi.baidu.com/makaymose/

上一篇:目录解释-linux
下一篇:在地图上添加注解(Annotati…

相关文章

相关评论