XML解析及Table的应用.ppt

上传人:牧羊曲112 文档编号:6524024 上传时间:2023-11-08 格式:PPT 页数:19 大小:774.50KB
返回 下载 相关 举报
XML解析及Table的应用.ppt_第1页
第1页 / 共19页
XML解析及Table的应用.ppt_第2页
第2页 / 共19页
XML解析及Table的应用.ppt_第3页
第3页 / 共19页
XML解析及Table的应用.ppt_第4页
第4页 / 共19页
XML解析及Table的应用.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《XML解析及Table的应用.ppt》由会员分享,可在线阅读,更多相关《XML解析及Table的应用.ppt(19页珍藏版)》请在三一办公上搜索。

1、XML的解析与表视图,什么是XML?,XML是Extensible Markup Language(可扩展标记语言)的简称,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML是 标准通用标记语言(SGML)的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。,格式特性,XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是存储数据。事实上XML与其他数据表现

2、形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。XML与HTML的设计区别是:XML的核心是数据,其重点是数据的内容。而HTML 被设计用来显示数据,其重点是数据的显示。XML和HTML语法区别:HTML的标记不是所有的都需要成对出现,XML则要求所有的标记必须成对出现;HTML标记不区分大小写,XML则 大小敏感,即区分大小写。,XML解析的方法,解析XML通常有两种方式,DOM 和 SAX:DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结 构(节点树),通过遍历树结构可以检索任意XML节点,读取它的 属性和值。而且通常情况下,可以借助X

3、Path,直接查询XML节点。SAX解析XML,是基于事件通知的模式,一边读取XML文档一边处理,不必等整个文档加载完之后才采取操作,当在读取解析过程中遇到需要处理的对象,会发出通知对其进行处理。,一般在IOS平台下,比较常用的XML解析类库有如下几种:,NSXMLParser:这是一个SAX方式解析XML的类库,默认包含在iOS SDK中,使用也比较简单。libxml2,是一套默认包含在IOS的SDK中的开源类库,它是基于C语言的API,所以使用起来可能不如NSXML方便。这套类库同时支持DOM和SAX解析,libxml2的SAX解析方 式还是非常酷的,因为它可以边读取边解析,尤其是在从网上

4、下载一个很大的XML文件,就可以一边下载一边对已经下载好的内容进行解析,极大的提高解析效率。下面主要介绍一下NSXMLParser解析XML文件,NSXMLPraser 解析XML,它的优点是实现简单,读写平衡;但是他的缺点也比较明显:占内存比较大,需要把整个xml文档都读入内存,所以对于比较大的文档,它的运行速度会很慢;他实现起来也比较简单,利用委托函数来实现;大致步骤是:initwithData、initwithcontentofUrl来初始化,设置其代理 setdelegate,然后调用 prase来运行解析器,NSXMLPraser 解析主要用到的委托方法,step1:准备解析-(vo

5、id)parserDidStartDocument:(NSXMLParser*)parserstep2:准备解析节点-(void)parser:(NSXMLParser*)parserdidStartElement:(NSString*)elementNamenamespaceURI:(NSString*)namespaceURIqualifiedName:(NSString*)qNameattributes:(NSDictionary*)attributeDict,step3:获取首尾节点间内容-(void)parser:(NSXMLParser*)parserfoundCharacters

6、:(NSString*)stringstep4:解析完当前节点-(void)parser:(NSXMLParser*)parser didEndElement:(NSString*)elementName namespaceURI:(NSString*)namespaceURI qualifiedName:(NSString*)qNamestep5:解析结束-(void)parserDidEndDocument:(NSXMLParser*)parser,1.初始化解析器,传入你要解析的数据。2.parse,启动解析,返回一个是否解析成功Bool值。3.基本你要处理的就在下面实现的1-5个代理方

7、法了其实代理方法和详细,就是一个事物进行流程:step1是准备解析,然后没意外就是执行到了step2读取到第一个头节点了,然后如果内部有属性值,你可以获取出来,读完头节点,我们会进去值域step3对于简单的节点,可能直接就是一个string值了,但是看例子我们会知道,很多情况下,该节点的值域包含的于是一个节点这步其实分两种,如果是值,那么就是执行step4,获取值的字窜,如果是子节点呢,它又是进行了step2,即读取到头标签了,其实你是很人读一片文章流程一样,只不过我们脑中有个印象是头标签了,我们要做什么,读到头标签的最后一个符号下面进去值域,独到了字窜的话就调用了foundCharacter

8、s:(NSString*)string,如果又读到这样的,那就又是头标签了。step5就是读到开始尾标签符号了。,简单的示例,示例:XMLTest,setp2 准备解析节点,step3 获取首尾节点间内容,step4:解析完当前节点,表视图,表视图是用来显示列表数据的视图对象,从本质上讲,表视图是UITableView类的一个实例;从结构组织上讲,表视图是由多个行组成的,其中每一行都是由表视图单元UITableViewCell类来实现的。表视图中显示数据是通过实现两个协议UITableViewDelegate和UITableViewDataSource中的方法来完成的。,UITableView

9、和UITableViewController,一般每一个表视图都有表视图控制器(UITableViewController),它作为UITableView的视图控制类,负责管理UITableView并控制UITableView的生命周期。我们可以把UITableViewController作为表视图的数据源和委托,然后利用相对应的协议的方法来定义表视图不同的显示风格,甚至可以自己定义表视图单元的每一个元素。,普通表:示例:TableTest01,表视图的基本样式,简单步骤,使用基于视图的应用程序模板,在Xcode中创建一个新项目,将项目命名为Simple Table双击TableTest01V

10、iewController.xib,在Interface中打开该文件。在库中找到Table View,将它拖到View窗口。单击Simple_TableViewController.h,添加如下代码:#import interface Simple_TableViewController:UIViewController NSArray*listData;property(nonatomic,retain)NSArray*listData;end,单击Simple_TableViewController.m,添加如下代码:#import Simple_TableViewController.h

11、 implementation Simple_TableViewController synthesize listData;-(void)viewDidLoad NSArray*array=NSArray alloc initWithObjects:“上海”,“广州”,“大连,“青岛”,“郑州,“长春”,“南京”,“沈阳”,“济南”,”太原”,“昆明”,“洛阳”,“开封”,“安阳”,“厦门,“三亚”,“西宁”,“兰州,nil;self.rows=array;/把创建的array数组的内容赋给rows数组array release;super viewDidLoad;,实现数据源方法:-(NS

12、Integer)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section/返回数组长度,及这个tableview有多少行 return rows count;,-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath static NSString*SimpleTableIdentifier=SimpleTableIdentifier;UITableViewCell

13、*cell=tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier;if(cell=nil)cell=UITableViewCell alloc initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableIdentifier autorelease;/设置每一个cell的文本内容 cell.textLabel.text=rows objectAtIndex:indexPath.row;return cell;,这样,一个简单的tableView就创建完成了,可以动手实验一下,分组表:示例:TableTest,组名,内容,相对于普通表,分组表有一定的难度。我们需要一个Plist文件来存储我们的数据文件。在这里,先不详细介绍分组表的实现,同学们可以先看看例子,简单的了解一下其中的操作步骤。其实,分组表与普通表还是有很多共同点的。只是数据上稍有区别,只要同学们稍做研究,还是能够攻破的。上机练习:1.实现XML解析和普通表的例子。2.用普通表显示一个XML文件里面的内容。(选做),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号