NSXMLParser 解析xml详解

NSXMLParser 解析xml详解,第1张

概述NSXMLParser 解析xml详解

下面是内存溢出 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详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1108035.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存