關於XML在FLASH的應用詳情介紹

黄舟
發布: 2017-03-23 17:07:49
原創
1534 人瀏覽過

點擊這裡瀏覽 Flash教學 欄目 關於XML在FLASH的應用,以前寫過幾篇。也收集了幾篇來自網路的。不過,都是一些非常簡單而常用的。在這裡,我把XML的其他相關說明總結一下。有不足之處,希望大家能互相補充。只為了一個共同的目的:共同提高。 一、書寫標準的XML需要 點這裡瀏覽 Flash教學 欄目 關於XML在FLASH的應用,以前寫過幾篇。也收集了幾篇來自網路的。不過,都是一些非常簡單而常用的。在這裡,我把XML的其他相關說明總結一下。有不足之處,希望大家能互相補充。只為了一個共同的目的:共同提高。
一、書寫標準的XML需要注意以下幾點:

  1. #list

  2. ##- paddingleft-2">

  3. 一個標準的XML文檔必須在第一行以""開頭,以及一個""結尾,其中開頭部分需申明XML的版本,如:version="1.0",也應包含一個關於編碼的聲明:「encoding="utf-8"」; XML要求所有的標籤必須在文件結束前被閉合,如果標籤中包含內容,則必須寫成「<標籤名>內容"的格式,如果內容為空,則應寫在的格式;即,後面必須有這種格式的。 每個XML都有有一個根元素,也叫根節點。 節點有節點值和

    屬性。 XML的節點值如果出現與XML標籤關鍵字一樣的字符,XML將會無法解析文檔,例如,某個節點值如果是一個大於或小於號,就會讓解釋器產生一個錯誤。

二、在FLASH中建立一個簡單的實例:
#

//创建一个新的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});
 }
 } else {
 my_TextArea.text  = "加载失败";
 }
};
第一个节点:firstChild:
用法:this.firstChild;
最后一个节点:lastChild
用法:this.firstChild;
兄弟节点:nextSibling:
用法:this.firstChild.childNodes[0].nextSibling;
另一个兄弟节点:previousSibling:
用法:this.firstChild.childNodes[0].previousSibling;
区别:nextSibling是朝后,而previousSibling是当前之前;
父类节点:parentNode:
用法:this.firstChild.parentNode;
登入後複製

以上是關於XML在FLASH的應用詳情介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!