
下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
#import "VIEwController.h"#import "VIDeo.h"@interface VIEwController ()<NSXMLParserDelegate>//存储对象数组@property (nonatomic,strong) NSMutableArray *vIDeos;// 来回拼接@property (nonatomic,strong) NSMutableString *elementString;// 当前视频信息的对象@property (nonatomic,strong) VIDeo *vIDeo;@end@implementation VIEwController- (voID)vIEwDIDLoad{ [super vIEwDIDLoad]; // 加载数据方法 [self loadData];}#pragma mark - 加载数据- (voID)loadData{ // data Nsstring * path = [[NSBundle mainBundle] pathForResource:@"vIDeo.xml" ofType:nil]; NSData * data = [NSData dataWithContentsOffile:path]; // 1>创建,传递data NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data]; // 2> 设置代理 parser.delegate = self; // 3> 开始解析 [parser parse];//返回值,判断是否解析成功 // 4> 解析完成之后的 *** 作}#pragma mark - XML解析代理方法#pragma mark 1. 开始- (voID)parserDIDStartdocument:(NSXMLParser *)parser{// NSLog(@"开始解析文档"); // 准备工作 // 1> dataList self.vIDeos = [NSMutableArray array]; // 2> elementString self.elementString = [NSMutableString string];}#pragma mark 2. 所有开始一个节点:<element>- (voID)parser:(NSXMLParser *)parser dIDStartElement:(Nsstring *)elementname namespaceURI:(Nsstring *)namespaceURI qualifIEdname:(Nsstring *)qname attributes:(NSDictionary *)attributeDict{ NSLog(@"开始节点:=====%@ %@",elementname,attributeDict); // 如果是<vIDeo>新建对象 if ([elementname isEqualToString:@"vIDeo"]) { self.vIDeo = [[VIDeo alloc] init]; } // 每开始一个新节点之前都清空elementString // 避免上一次的结果被重复拼接,例如拼完名字是"abc",再拼长度就会变成"vda1234" [self.elementString setString:@""];}#pragma mark 3. 查找内容,可能会重复多次- (voID)parser:(NSXMLParser *)parser foundCharacters:(Nsstring *)string{ // 拼接字符串 [self.elementString appendString:string];}#pragma mark 4. 节点结束 </element>- (voID)parser:(NSXMLParser *)parser dIDEndElement:(Nsstring *)elementname namespaceURI:(Nsstring *)namespaceURI qualifIEdname:(Nsstring *)qname{// NSLog(@"结束节点 %@",elementname); if ([elementname isEqualToString:@"name"]) { self.vIDeo.name = self.elementString; } else if ([elementname isEqualToString:@"length"]) { self.vIDeo.length = self.elementString; } //将对象添加到数组 else if([elementname isEqualToString:@"vIDeo"]) { [self.vIDeos addobject:self.vIDeo]; } }#pragma mark 5. 文档结束- (voID)parserDIDEnddocument:(NSXMLParser *)parser{ for (VIDeo * vIDeo in self.vIDeos) { NSLog(@"%@---%@",vIDeo.name,vIDeo.length); }}#pragma mark 6. 出错处理- (voID)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError{ NSLog(@"%@",parseError.localizedDescription);} 以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的NSXMLParser 解析xml详解全部内容,希望文章能够帮你解决NSXMLParser 解析xml详解所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)