在ActionScript 3.0中,用于处理XML数据的主要有两个类:XML和XMLList。前者表示单个XML元素,它可以是包含多个子元素的XML文档,也可以是文档中的单值元素。后者表示一组XML元素。
既然是XML,在ActionScript 3.0中同样有着和C#/Java一样的相关术语,如:文档、元素、节点以及属性等。本文将以XML文档的创建、添加数据、删除数据、查询数据以及加载外部XML文件为中心,详细介绍在ActionScript 3.0中对XML的处理。
在此之前先来了解下E4X方法。什么是ECMAScript for XML (E4X)方法呢?它是ActionScript 3.0中所提供的一些运算符,用于访问和处理XML数据的特定功能。ActionScript 3.0 包含以下 E4X 类:XML、XMLList、QName 和 Namespace。它们位于flash.xml包下,目的就是为了达到更容易编写和理解用于处理XML数据的代码。
一、创建内部XML文档
在Flex下要创建一个XML文档是很简单的,可以使用XML对象直接创建,如下所示:
1privatevarpXml:XML=<Root>
2 <Bookid="1">
3 <Name>ActionScript入门到精通</Name>
4 <Author>张三</Author>
5 <Price>48.50</Price>
6 </Book>
7 <Bookid="2">
8 <Name>ASP.NET高级编程</Name>
9 <Author>李四</Author>
10 <Price>86.70</Price>
11 </Book>
12 </Root>
二、加载外部XML文档
除了上面这种创建XML文档的方式外,我们同样可以使用一个外部已存在的xml文档(此xml文档可以是一个xml文件,也可以是一个函数的返回值等),要加载一个外部的xml文档在Flex下可以通过<mx:XML>标签来完成,如下所示:
1 <mx:XMLid="book"source="Data/Book.xml">
2
3 </mx:XML>
通过上面这中方式载入的XML文档在界面设计的时候就可以直接通过book实例来绑定在界面元素上了。那么我们需要在编程中使用外部XML则需要通过另外一种方式载入XML,既使用URLLoader.load()方法,且还需要设置dataFormat属性为DataFormat.TEXT读取数据,通过complete事件处理函数来转换载入的数据为XML实例,如下代码块:
1privatefunctionLoadXML():void
2{
3 //创建URLLloader实例以简单文本形式读取数据
4 //设置数据装载格式为DataFormat.TEXT
5 //监听并添加complete事件处理函数
6 varloader:URLLoader=newURLLoader();
7 loader.dataFormat=DataFormat.TEXT;
8 loader.addEventListener(Event.COMPLETE,handlerComplete);
9 loader.load(newURLRequest("Data/Book.xml"));
10}
11
12privatefunctionhandlerComplete(event:Event):void
13{
14 varbook:XML=newXML(event.target.data);
15}
另外装载外部XML数据还有种情况就是RPC,某种情况下也叫XML-RPC,常见的开发模式通常为服务器端提供调用接口,接口可以为asp,jsp,php,aspx,webservice,wcf等提供的都可以,这里就不多说,详细在以后的文章里介绍。