Actionscript 3.0组类基于ECMAScript for XML(E4X)说明(ECMA-357 2第二版)。这些类功能强大,使用简单,对处理XMLdata数据非常有用。相比以前的编程技术使用E4X的开发代码使得XML数据更快。
- 介绍XML
- 对XML元素与属性赋值
- 通过传递数据引用创建XML对象
- 装配与改变XML对象
- 查询XML数据
介绍XML
许多服务器端应用程序使用XML数据结构,那么你可以在ActionScript中使用XML类来创建优雅的富互联网应用程序。例如那些链接到Web
service的应用。web service是连接应用程序的重要的方法,例如,一个Adobe Flash Player9
应用程序和一个在web服务器上的应用程序通过公共标准,例如Simple Object Access Protocol(SOAP)
在Adobe Flex中,ECMAScript for XML说明书定义了一系列的类和功能来处理XML数据。这些类和函数的集合被称为E4X.两个主要的类是XML和XMLList。
注意: 在ActionScript 2.0中有一个XML类。在ActionScript 3.0中,它被重命名为XMLDocument这样就不会与新的,作为E4X一部分的XML类发生冲突了。在ActionScript 3.0中,上一个版本遗留的类——XMLDocument,XMLNode,XMLParser和XMLTag——都被包含在flash.xml包中,主 要是为了向下兼容。E4X类是核心类;你需要导入包才能使用他们。本快速说明没有设计对传统的ActionScript 2.0的类逐一细说。想了解他们,查看flash.xml包,在Flex 3 Language Reference中
在下边的例子中,你创建了一个XML文档,命名为myBooks。创建一个XML文档在ActionScript,通过在Actionscript块中书写XML并赋值给一个变量。由于在Flex中,XML是本地数据类型,就像Number或Boolean一样。
myBooks的XML文档包含两个book元素(element)(也被称为node(节点))。第一个book元素拥有4个子元素,名称值title,author,amazonUrl和pageCount。
要通过XML实例访问元素,使用点标示(.)就像存取一个对象的属性一样。那么,举个例子,要获得book节点的引用,你要写成 myBooks.book。这就返回了一个XMLList时间,他包含了myBooks的XML中的2个book节点。要存取列表中指定节点,你需要使用 数组表示法。例如,要获得第一本数节点的引用,可以写为myBooks.book[0]。如果你使用过ActionScript中的对象和数组,你应该对 点操作符和数组语法风格比较熟悉。然而,E4X比这更进一步,可以按指定属性名在XML中搜索节点。
下边的例子中,使用搜索ISBN属性获得第一本书的引用。属性在 E4X中at-sign(@)为前缀描述属性,写为@ISBN。语句myBooks.book.(@ISBN==”159059181”)翻译为“找到一 个属性ISBN值等于159059181的book节点”。另一个例子描述更高级的查找技术。
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="440" height="400" initialize="initializeHandler();" > <mx:Script> <!--[CDATA[ [Bindable] public var a:XMLList; [Bindable] public var b:XMLList; [Bindable] public var c:XMLList; [Bindable] public var d:XMLList; // Model: XML structure describing // some of the books in my collection. [Bindable] private var myBooks:XML = <books> <book ISBN="1590595181"> <title>Foundation ActionScript Animation: Making Things Move</title> <author>Keith Peters</author> <amazonUrl>http://tinyurl.com/npuxt</amazonUrl> <pageCount>470</pageCount> </book> <book ISBN="1582346194"> <title>Send in the Idiots: Stories from the Other Side of Autism</title> <author>Kamran Nazeer</author> <amazonUrl>http://tinyurl.com/lo5ts</amazonUrl> <pageCount>500</pageCount> </book> </books> private function initializeHandler():void { // An XML list that contains both book nodes. a = myBooks.book; // Keith Peters b = myBooks.book[0].author; // 470 c = myBooks.book.(@ISBN=="1590595181").pageCount; // Delete the first book node. delete myBooks.book[0]; // Send in the Idiots... d = myBooks.book[0].title; } ]]--> </mx:Script> <!-- User interface --> <mx:Panel title="XML lookup results" paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10"> <mx:Text text="{'a: ' + a}" width="300"/> <mx:Label text="{'b: ' + b}"/> <mx:Label text="{'c: ' + c}"/> <mx:Label text="{'d: ' + d}"/> </mx:Panel> </mx:Application>
本文介绍了如何使用ActionScript 3.0中的E4X进行XML数据处理,包括创建、查询和修改XML文档的方法。通过具体示例展示了如何利用XML和XMLList类实现对XML数据的操作。
151

被折叠的 条评论
为什么被折叠?



