码迷,mamicode.com
首页 > 其他好文 > 详细

Analysis解析

时间:2015-09-18 18:21:58      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

/**

 *  解析: 按照约定好(假象)的格式提取数据的过程叫做解析. 数据提供方(后台)按照格式存放数据, 数据提取方(前端)按照格式提取数据

    主流的数据结构: XML JSON;

    XML数据结构的特点:

        1.有变迁组成, 而且标签是一对的, 一对开始标签和结束标签叫 节点

        2.节点可以有子节点和父节点, 没有父节点的节点叫根节点, 没有子节点的节点叫叶子节点

        3.节点可以用来存储数据

    XML 解析原理:

        1.SAX解析: 是一种基于事件回调的解析机制(主要通过代理方法进行解析), 逐行解析, 逐行写入内存, 适合大数据的解析, 效率比较低, 系统解析就是这种方式

        2.DOM解析: 将数据全部读入内存, 将数据读成树形结构, 逐层进行解析, 适用于小数据解析, 效率比较高, 第三方解析的解析原理

 */

    //点击解析, 移除数组中数组

    [self.dataSource removeAllObjects];

    

    // 1.获取要解析的文件路径

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"xml"];

    // 2.根据文件路径 初始化 NSData 对象

    NSData *data = [NSData dataWithContentsOfFile:filePath];

    // 3.创建解析根据对象

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

    // 4.设置代理, 检测解析过程

    parser.delegate = self;

    //处理命名空间

    parser.shouldProcessNamespaces = YES;

    // 5.开始解析

    [parser parse];

    [parser release];

 

#pragma make -- NSXMLParserDelegate

// 当读取到开始标签时触发

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

    //parser 解析工具对象; elementName 标签名字; namespaceURI 命名标签唯一标示; qName 标签名  attributes 节点中的属性

    

    //当读取到student 开始标签时, 创建student对象

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

        self.stu = [[[Student alloc]init] autorelease];

        //节点属性对应的数据,

        self.stu.position = attributeDict[@"position"];    

    }

}

//当读取到标签后内容时触发

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

    //保存读取到标签后的内容

    self.string = string;

}

//当读取到结束标签时触发

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

}

//解析结束时触发

- (void)parserDidEndDocument:(NSXMLParser *)parser {

    //解析结束, 重新刷新页面

    [self.tableView reloadData];

}

Analysis解析

标签:

原文地址:http://www.cnblogs.com/tapple/p/4819232.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!