加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML解析

发布时间:2020-12-16 05:53:22 所属栏目:百科 来源:网络整理
导读:@interface TRBookXmlParser : NSObject NSXMLParserDelegate @property ( nonatomic , strong ) NSMutableArray *books; strong ) TRBook *book; copy ) NSString *currentString; -( NSMutableArray *)beginParseByPath:( NSString *)path; @implementatio

@interface TRBookXmlParser : NSObject<NSXMLParserDelegate>

@property (nonatomic,strong)NSMutableArray *books;

)TRBook *book;

)NSString *currentString;

-(NSMutableArray *)beginParseByPath:(NSString *)path;


@implementation TRBookXmlParser

-(NSMutableArray *)beginParseByPath:(NSString *)path{

NSData *data = [NSData dataWithContentsOfFile:path];

NSXMLParser *parser = [[NSXMLParser alloc]initWithData:data];

self.books = [NSMutableArray array];

parser.delegate = self;

if ([parser parse] ) {

NSLog(@"解析成功");

}

return self.books;

}


// step 2:准备解析节点

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{

if ([elementName isEqualToString:@"book"]) {

NSLog(@"%@ ",attributeDict);

self.book = [[TRBook alloc]init];

self.book.bookID = [attributeDict objectForKey:@"id"];

[self.books addObject:self.book];

}

}

//step 3:获取首尾节点间内容

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

// 如果为‘n’就回到第二步,如果不是‘n’就到第四步

self.currentString = string;

}

//step 4 :解析完当前节点

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{

NSLog(@"end %@",elementName);

if ([elementName isEqualToString:@"name"]) {

self.book.name = self.currentString;

}else if ([elementName isEqualToString:@"author"]) {

self.book.author = self.currentString;

}else if ([elementName isEqualToString:@"price"]) {

self.book.price = self.currentString.intValue;

}else if ([elementName isEqualToString:@"page"]) {

self.book.page = self.currentString.intValue;

}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读