
//创建一个新的XML类实例
var my_XML:XML=new XML();
//创建一个TextArea组件,用于显示此XML内容
var my_TextArea:mx.controls.TextArea;
//加载外部XML文件
my_XML.load("my_xml.xml");
//为load函数定义onLoad函数---此处是必须的。只有当加载成功后,才能控制XML。否则不能。
my_XML.onLoad=function(ok:Boolean){
if(ok){
my_TextArea.text+=this;
}else{
my_TextArea.text+="加载失败..."
}
}
//勿略空白:
my_XML.ignoreWhite=true;
三、关于FLASH解析XML详解,说白了,也就是对节点的读取。首先,来看看这幅图,稍微加点印象。
下面,我将对XML文件的解析方面做详细的介绍。为了便于讲解,在此,我举一个简单的例子。
1、新建一个记事本文件,在里面输入如下内容:
<衬衣 颜色="白色" 品牌="雅戈尔">1件
<裤子 颜色="深蓝" 品牌="王子裤">2件
<鞋子 颜色="黑色" 品牌="红蜻蜓">3双
<总花费金额>
<打的费>50元
<货物金>1000元然后保存为"goods.xml",注意,在编码处,要选择"Unicode"。
2、下面,就对里面的各项值进行解读。
读取整个XML文件的方法:在刚才的XML的同级目录下新建一FLA文件,然后在场景中放置一TextArea组件。并赋实例名“my_TextArea”,然后在第一帧中添加如下代码:
var my_XML:XML=new XML();
System.useCodepage=true;
var my_TextArea:mx.controls.TextArea;
my_XML.load("goods.xml")
my_XML.onLoad=function(ok:Boolean){
if(ok){
my_TextArea.text+=this;
}else{
my_TextArea.text+="加载失败"
}
}按CTRL+ENTER测试,即可以看效果。
首先,我们来看看如何对XML中的节点名称或者节点属性进行读取呢?比如,我们要读取如例子中的"购买物品"这几个字符,该如何操作呢?
我们使用如下语句:
this.firstChild.nodeName;
如果要读取"衬衣":
this.firstChild.childNodes[0].nodeName;
如果要读取"1条":
this.firstChild.childNodes[1].childNodes[0].nodeValue;
如果要读取裤子的品牌:
this.firstChild.childNodes[1].attributes.品牌;
将XML读取进LIST组件中:
System.useCodepage = true;
var my_TextArea:mx.controls.TextArea;
var my_List:mx.controls.List;
var my_XML:XML = new XML();
my_XML.ignoreWhite = true;
my_XML.load("shopping.xml");
my_XML.onLoad = function(ok:Boolean) {
if (ok) {
var childnodes = this.firstChild.childNodes;
for (i=0; i<childnodes.length; i++) {
my_List.addItem({label:childnodes.nodeName});