Flex XML 的遍历
发布时间:2020-12-15 01:14:48 所属栏目:百科 来源:网络整理
导读:?????? 使用Flex的朋友都知道,Flex使用XML做为Flex 的数据源,那是家常便饭的事情,因此不可避免地要碰到XML遍历的问题,对于新手来说,这个问题,还真是需要解决的问题。下面我们来讨论一下这个问题。 ????? 一、XML的格式。我们这里讨论的XML数据,包括两
?????? 使用Flex的朋友都知道,Flex使用XML做为Flex 的数据源,那是家常便饭的事情,因此不可避免地要碰到XML遍历的问题,对于新手来说,这个问题,还真是需要解决的问题。下面我们来讨论一下这个问题。
????? 一、XML的格式。我们这里讨论的XML数据,包括两种格式。 ?????? 格式一: 树型结构XML数据: ? <root label="系统功能区"> <child1 label="设备管理" > <child2 label="单点操作"/> <child2 label="自定义分组"/> <child2 label="设备维护"/> <child2 label="节点配置"/> <child2 label="通讯号码"/> <child2 label="自定义字段"/> </child1> <child1 label="警报处理" > <child2 label="报警参数"/> <child2 label="报警维护"/> </child1> ??????? 格式二:记录型XML数据: <alerts> <alert> <ID>213001</ID> <name></name> <kind></kind> <desc></desc> <addr></addr> <tel>020-63263365</tel> </alert> <alert> <ID>213001</ID> <name></name> <kind></kind> <desc></desc> <jb>5</jb> <addr></addr> <tel>020-63263365</tel> </alert> </alerts> ? ??? 朋友们,有没有看出这两种数据的格式有个么不同,对了,一种的树型结构的,适合于给Tree控件提供数据源,一个是记录型的,适合于给 dataGrid List等控件提供数据源。 ??? 二、两种不同数据源的遍历方法不同。因为结构不一样,所以遍历起来的方法也不一样。 ????????? 对于数型结构,要遍历的话,需要递归,遍历每一个叶子结点。 private function Trav_AddDg(xml:XMLList,):void { for each (var xmlChildren:XML in xml) { if (xmlChildren.@flag == "") { //做事情 } //有子结点,递归 if (xmlChildren.hasComplexContent()) { var list:XMLList=xmlChildren.children(); Trav_AddDg(list,desc); //递归调用 } } } ???? 注意递归的条件,防止无穷递归。 ???? 对于记录型结构我们采用循环的方式就可以遍历: var i:int; for(i=0;i<flexXML.child("alert").length();i++) { trace(flexXML.child("alert").[i].Name+":"+flexXML.child("alert").[i].Version); } ? OK,好了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |