xml节点详解.docx_第1页
xml节点详解.docx_第2页
xml节点详解.docx_第3页
xml节点详解.docx_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2012-05-15 11:10 【转】XML节点的认识XML文件就像一个树状的目录。可以把第一行当作它扎根的“土地”。XML文件是由节点构成的。它的第一个节点为“根节点”。一个XML文件必须有且只能有一个根节点,其他节点都必须是它的子节点。我们在FLASH里使用XML对象解析XML的时候,this 代表整个XML文件,它的根节点就是 this.firstChild 。 this.firstChild.childNodes 则返回由根节点的所有子节点组成的节点数组。每个子节点又可以有自己的子节点。节点编号由0开始,根节点的第一个子节点为 this.firstChild.childNodes0,它的子节点数组就是this.firstChild.childNodes0.childNodes 。继续深入到没有子节点的单一节点,比如根节点第一个子节点的第二个子节点 this.firstChild.childNodes0.childNodes1,它返回的是一个XML对象(Object) 。这里需要特别注意,节点标签之间的数据本身也视为一个节点 this.firstChild.childNodes0.childNodes1.firstChild ,而不是一个值。我们解析XML的最终目的当然就是获得数据的值:this.firstChild.childNodes0.childNodes1.firstChild.nodeValue 。注意!不是 this.firstChild.childNodes0.childNodes1.nodeValue !节点名称有时也是我们需要的数据: this.firstChild.childNodes0.childNodes1.nodeName 。注意比较获得节点名称和节点值的不同。除了作为子节点,数据还可以作为节点属性。节点属性写在节点标签内部:节点值 。如果数据全作为属性而没有节点值,则可以写成 的形式,而不用写成 。 注意节点必须关闭,写成 就不对了。节点的所有属性返回一个通用对象(Object),比如根节点第六个子节点的第三个子节点的所有属性为: this.firstChild.childNodes5.childNodes2.attributes 。 获得其中的“地址”属性: this.firstChild.childNodes5.childNodes2.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 = tmpA0.childNodes.length;var myWorksL:Number = tmpA5.childNodes.length;/根节点子节点的节点名称存入数组for (var i:Number = 0; i项目列表.push(tmpAi.nodeName);/第一个子节点数据作为子节点for (var i:Number = 0; i/单一节点返回一个XML对象,用一个变量tmpO存储它var tmpO:Object = tmpA0.childNodesi;/把每个节点的名称和节点值作为通用对象(Object)的属性存在数组里基本资料.push(title:tmpO.nodeName, content:tmpO.firstChild.nodeValue);/第六个子节点数据作为节点属性for (var i:Number = 0; ivar tmpO:Object = tmpA5.childNodesi;/把节点名称和节点属性作为通用对象的属性存在数组里我的作品.push(url:tmpO.attributes.地址, name:tmpO.nodeName, desc:tmpO.attributes.描述);/把onLoad事件广播出去,由JobPresenter类(表示器)接收数据加载视图类(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论