Flash与XML数据交互

记得刚开始学习flash时是学as3.0的,当时flash与XML数据交互困扰了我一个多星期….今天在商创技术发现了这篇对学习flash的新手来说很有意义。转载与大家分享!

在AS3里,对XML的控制变得非常方便了,有用过AS2的读者都知道,如果我们用AS2去访问一个节点,做法是xmlObj.firstChild.childNodes[2]如果复杂的XML结构就更麻烦了,所以在AS2时需要把一系统的节点用一个值来先做“替身”即xmlList= xmlObj.firstChild.childNodes来降底程序的复杂程序。

AS3里使用E4X(ECMAScript for XML)来规范定义组用于处理 XML 数据的类和功能。E4X 类的方法、属性和运算符实现以下便利:

· 简单:在可能的情况下,使用 E4X 可以更容易地编写和理解用于处理 XML 数据的代码。

· 一致:E4X 背后的方法和推理在内部是一致的,并与 ActionScript 的其它部分保持一致。

· 熟悉:使用众所周知的运算符来处理 XML 数据,如点 (.) 运算符。

E4X 类有包括XML、XMLList、QName 和 Namespace。下面我们来看看XML类,如何创建修改XML文件。

注:本文出自《FlashCS3 动画制作一点通》 节选于第十一章

11.3.1  声明XML对象

XML 对象可能表示 XML 元素、属性、注释、处理指令或文本元素。

声明一个XML对象基本语法如下:

1
var xml:XML=new XML(<myxml>xml文件</myxml>)

使用new XML()创建XML对象,AS3声明XML对象比较灵活了,XML对象里的内容可以用引号也可以像上面的代码不使用引号。更直接的声音方式直接赋值,只要XML结构是正确的就行,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var xml=
 
    <myxml>
 
        <item id='1'>
 
             <menuName>burger</menuName>
 
             <price>3.95</price>
 
        </item>
 
    </myxml>
 
trace(xml.toXMLString())

第8行,使用对象的toXMLString()方法输出xml,这个方法要和toString()区分开来,还有一个是输出XML文本结点的方法text(),我们先来区分一下这三个方法,便于我们后面的学习。

范例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var xml:XML=
 
         <body>
 
             text1
 
             <bar>barText1</bar>
 
             <bar>barText1</bar>
 
             text2
 
         </body>
 
trace(xml.text());//输出:text1text2
 
trace(xml.text()[0]);//输出:text1
 
trace(xml.text()[1]);//输出: text2
 
trace(xml.child(1).toXMLString());//输出:<bar>barText1</bar>
 
trace(xml.child(1).toString());//输出:barText1

toXMLString()方法:始终返回XML 对象的开始标签、属性和结束标签的字符串型式。

toString()方法:只是按字符串形式返回节点的内容。

text()方法:则是返回XML 文本节点的所有 XML 属性的 XMLList 对象,上面的例子,有两个文本节点text1和text2。

版权所有:为网站而疯狂-给站长一个五星级的家转载请注明来源,谢谢!

还不快抢沙发       我也不甘寂寞

欢迎留言

友情提示:
1、请勿发表色情、违法、商业广告等信息,谢谢。
2、留言想要有头像?请看 “我” 的。