XML解析方式
来源:互联网 发布:知乎 竖肩章 编辑:程序博客网 时间:2024/06/18 12:24
1.原生:NSXMLParser(SAX形式解析)
SAX:一次性将整个XML加载进内存中,适合小文件解析
2.第三方框架:GDataXML(DOM形式解析, 非arc) libxml2(纯c)
DOM:从根元素开始解析,一个一个按顺序解析元素,适合大文件解析
NSXMLParser解析
//4.1 创建一个解析器 NSXMLParser *parser = [[NSXMLParser alloc]initWithData:data]; //4.2 设置代理 parser.delegate = self; //4.3 开始解析 [parser parse]; prama mark ---- NSXMLParserDelegate //1.开始解析XML文档-(void)parserDidStartDocument:(nonnull NSXMLParser *)parser{ NSLog(@"parserDidStartDocument");}//2.开始解析XML中某个元素的时候调用,比如<video>-(void)parser:(nonnull NSXMLParser *)parser didStartElement:(nonnull NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName attributes:(nonnull NSDictionary<NSString *,NSString *> *)attributeDict{ NSLog(@"didStartElement---%@---%@",elementName,attributeDict); if ([elementName isEqualToString:@"videos"]) { return; } //字典转模型 // XMGVideo *video = [[XMGVideo alloc]init]; // video.keyValues = attributeDict; XMGVideo *video = [XMGVideo objectWithKeyValues:attributeDict]; [self.videos addObject:video];}//3.当某个元素解析完成之后调用,比如</video>-(void)parser:(nonnull NSXMLParser *)parser didEndElement:(nonnull NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName{ NSLog(@"didEndElement---%@",elementName);}//4.XML文档解析结束-(void)parserDidEndDocument:(nonnull NSXMLParser *)parser{ NSLog(@"parserDidEndDocument");}
GDataXML解析
GDataXMLDocument *doc = [[GDataXMLDocument alloc]initWithData:data options:kNilOptions error:nil];//4.2 获取XML文档的根元素,根据根元素取出XML中的每个子元素(所有名称为video的子元素) NSArray * elements = [doc.rootElement elementsForName:@"video"];//4.3 取出每个子元素的属性并转换为模型 for (GDataXMLElement *ele in elements) { XMGVideo *video = [[XMGVideo alloc]init]; video.name = [ele attributeForName:@"name"].stringValue; video.length = [ele attributeForName:@"length"].stringValue.integerValue; video.url = [ele attributeForName:@"url"].stringValue; video.image = [ele attributeForName:@"image"].stringValue; video.ID = [ele attributeForName:@"id"].stringValue;
0 0
- 【XML】XML解析方式
- 【XML】XML解析方式
- xml-xml解析方式
- xml解析方式
- XML解析方式比较
- XML解析方式
- 解析xml的方式
- XML 解析方式
- dom方式解析xml
- XML解析方式汇总
- xml解析方式
- xml解析多种方式
- Pull解析Xml方式
- DOM方式解析XML
- xml解析方式
- XML解析方式
- XMl资源解析方式
- XML解析方式
- 【Python错误】No module named py
- 合并两个链表成一个升序链表
- 2016年观影总结
- IDEA中上传本地项目到Git
- request中的各种path
- XML解析方式
- 链表算法
- Jquery-zTree的基本用法(不错)
- web前端html文件之间做表单数据传输和处理
- stl中map的使用总结
- leetcode-69. Sqrt(x)
- 第十五周项目八判断回文
- CS231n课程笔记2.2:线性分类器
- 打印菱形星号组合(俩种解法),不允许只用printf,要求采用循环的方式,找规律。