收藏 分销(赏)

xml节点详解.docx

上传人:pc****0 文档编号:5630725 上传时间:2024-11-15 格式:DOCX 页数:5 大小:181.33KB 下载积分:10 金币
下载 相关 举报
xml节点详解.docx_第1页
第1页 / 共5页
xml节点详解.docx_第2页
第2页 / 共5页


点击查看更多>>
资源描述
2012-05-15 11:10 【转】XML节点的认识 XML文件就像一个树状的目录。可以把第一行当作它扎根的“土地”。      XML文件是由节点构成的。它的第一个节点为“根节点”。一个XML文件必须有且只能有一个根节点,其他节点都必须是它的子节点。我们在FLASH里使用XML对象解析XML的时候,this 代表整个XML文件,它的根节点就是 this.firstChild 。 this.firstChild.childNodes 则返回由根节点的所有子节点组成的节点数组。      每个子节点又可以有自己的子节点。节点编号由0开始,根节点的第一个子节点为 this.firstChild.childNodes[0],它的子节点数组就是this.firstChild.childNodes[0].childNodes 。      继续深入到没有子节点的单一节点,比如根节点第一个子节点的第二个子节点 this.firstChild.childNodes[0].childNodes[1],它返回的是一个XML对象(Object) 。这里需要特别注意,节点标签之间的数据本身也视为一个节点 this.firstChild.childNodes[0].childNodes[1].firstChild ,而不是一个值。      我们解析XML的最终目的当然就是获得数据的值:this.firstChild.childNodes[0].childNodes[1].firstChild.nodeValue 。注意!不是 this.firstChild.childNodes[0].childNodes[1].nodeValue !节点名称有时也是我们需要的数据: this.firstChild.childNodes[0].childNodes[1].nodeName 。注意比较获得节点名称和节点值的不同。      除了作为子节点,数据还可以作为节点属性。节点属性写在节点标签内部:<节点 属性1="属性值" 属性2="属性值"...... >节点值 。如果数据全作为属性而没有节点值,则可以写成 <节点 属性="属性值" /> 的形式,而不用写成 <节点 属性="属性值"> 。 注意节点必须关闭,写成 <节点 属性="属性值"> 就不对了。   节点的所有属性返回一个通用对象(Object),比如根节点第六个子节点的第三个子节点的所有属性为: this.firstChild.childNodes[5].childNodes[2].attributes 。 获得其中的“地址”属性: this.firstChild.childNodes[5].childNodes[2].attributes.地址 。      比较而言,数据作为属性的方式更好。因为文件相对比较小,而且避免深入更多层子节点,解析速度更快。   下面以简历的 JobXMLModel类 (模型)看看在flash里具体的解析。 JobXMLModel类 继承XML类,首先在构造函数里设置 ignoreWhite 属性为true忽略XML文件中多余的空格。    //构造函数   public function JobXMLModel() {   ignoreWhite = true;   }   //覆盖XML类的 onLoad 事件   private function onLoad():Void {   //变量tmpA存储根节点的节点数组。   var tmpA:Array = this.firstChild.childNodes;   //把tmpA的长度存储在tmpL变量里。   var tmpL:Number = tmpA.length;   //以根节点第一、第六个子节点为例,同样存储数组长度变量   var basicInfoL:Number = tmpA[0].childNodes.length;   var myWorksL:Number = tmpA[5].childNodes.length;   //根节点子节点的节点名称存入数组   for (var i:Number = 0; i   项目列表.push(tmpA[i].nodeName);   }   //第一个子节点数据作为子节点   for (var i:Number = 0; i   //单一节点返回一个XML对象,用一个变量tmpO存储它   var tmpO:Object = tmpA[0].childNodes[i];   //把每个节点的名称和节点值作为通用对象(Object)的属性存在数组里   基本资料.push({title:tmpO.nodeName, content:tmpO.firstChild.nodeValue});   }   //第六个子节点数据作为节点属性   for (var i:Number = 0; i   var tmpO:Object = tmpA[5].childNodes[i];   //把节点名称和节点属性作为通用对象的属性存在数组里   我的作品.push({url:tmpO.attributes.地址, name:tmpO.nodeName, desc:tmpO.attributes.描述});   }   //把onLoad事件广播出去,由JobPresenter类(表示器)接收数据加载视图类(JobView )   broadcastMessage("onXMLLoaded");   }   //隐式获取函数,供表示器接受数据   public function get basicInfo():Array {   return 基本资料;   }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 环境建筑 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服