flash讀取XML文件


關於XML的簡介與編寫格式在下在這就不多談了(因為 大家都是聰明人)。對XML的最通常的使用,就是讀取出XML文檔中所保存的數據。我們來創建這個要被讀取的XML文檔。你可以用任何一種純文本編輯器來 創建一個XML文檔。打開你喜歡的純文本編輯器,在其中輸入下面的代碼;
(這是一個個人簡歷):

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

                <?xml version="1.0" encoding="GB2312"?>
                              <personal>
                                          <profile>
                                         <name>明</name>
                                         <sex>男</sex>
                                        <age>21</age>
                                        <city>南寧</city>
                                        </profile>
                                        <profile>
                                        <name>繁</name>
                                <sex>男</sex>
                                        <age>21</age>
                                         <city>上海</city>
                                           </profile>
                                    </personal>

   把該文檔作為 profile.xml 保存。
現在我們來創建用於讀取profile.xml文檔的flash 程序。新建一個Flash 文檔,在根時間線的第1幀捆綁下面的腳本:

                         

//防止亂碼(一般這樣說,但不然只要在保存XML文檔時以Unicode保存就可以刪除這句)
      System.useCodepage=true;
      //創建一個XML對象myXML
      myXML=new XML();
      //創建一個All 與 aa bb cc dd的數組
       var all = new Array();
      var aa = new Array();
       var bb = new Array();
       var cc = new Array();
       var dd = new Array();
      //把profile.xml裝入myXML
      myXML.load("profile.xml");
      //忽略僅包含空白的文本節點
      myXML.ignoreWhite=true;
      //當profile.xml完全裝入myXML中時應進行的處理
      myXML.onLoad=function(success){
            //如果將profile.xml完全裝入時
            if (success){
                //獲取myXML 對象中全部子節點對象的對象數組,對象數組中的每個數據元素都是 myXML 操作對象中的一個子節點對象。
                all = myXML.firstChild.childNodes;
                //測試可以看到"<personal><profile>.....</profile> <profile>.....</profile></personal>"中所有的數據
                trace(All);
                //用一個 for 得出all的總數,這里2
                for (var i = 0; i<all.length; i++) {
                //如果想得到profile.xml文檔中所有的"<name>..</name>"數據,輸入下句
                aa[i] = all[i].childNodes[0].firstChild.nodeValue;
                trace(aa[i]);
                //如果想得到profile.xml文檔中所有的"<sex>..</sex>"數據,輸入下句
                bb[i] = all[i].childNodes[1].firstChild.nodeValue;
                trace(bb[i]);
                //如果想得到profile.xml文檔中所有的"<age>..</age>"數據,輸入下句
                cc[i] = all[i].childNodes[2].firstChild.nodeValue;
                trace(cc[i]);
                //如果想得到profile.xml文檔中所有的"<city>..</city>"數據,輸入下句
                dd[i] = all[i].childNodes[3].firstChild.nodeValue;
                trace(dd[i]);
                            }//結束

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
////////////////////////語法1////////////////////
      //語法: myXML.childNodes  
      //返回:一個對象數組
      //介紹:讀取 XML 操作對象的 childNodes 屬性,可以獲取一個包含 myXML 操作對象中全部子節點對象的對象數組,對象數組中的每              個數據元素都是 myXML 操作對象中的一個子節點對象。
     //////////////////////////////語法2///////////////////////       
     //語法: myXML.firstChild
     //返回:一個 XML 元素或文字節點對象
     //介紹:通過讀取 XML 操作對象的 firstChild 屬性,可以獲取 myXML 操作對象中包含的第一個子元素節點或子文字節點對象。        

                      是不是很簡當呢!當然這只是我們的初步,之后我雪狐所要講解的是如何用XML文檔里的數據來制作一個簡單的flash播放器

文章2============================

XML類:
       XML.ignoreWhite;//處理xml文檔中的空白,設為true時,忽略空白,默認值為false.
       XML.load("xml文檔的地址");//加載指定的xml文檔.
       XML.onLoad=function(success:Boolean){};//成功加載了xml文檔時調用.
       XML構造函數.

XMLNode類:
       XMLNode.attributes;//用來指定xml文檔的屬性.
       XMLNode.childNodes;//返回指定xml文檔對象的子級的數組.
       XMLNode.firstChild;//引用父級節點的子級列表中的第一個子級.
       XMLNode.nodeValue;//返回XML對象的節點值.
       XMLNode.nodeName;//XML 對象的節點名稱

在“藍色理想”里找到這些屬性,用nodeValue的時候,試了大半天,還是沒有成功。。。

一時興起,試了firstChild,竟然成功了。。

如:<xml><ls><langshen name="狼神">還是狼神</langshen></ls></xml>

提取一個XML中,“langshen”這個值的時候,name是這樣提取的:

xml.firstChild.firstChild.firstChild.attributes.name

.而結點內容,則是:

xml.firstChild.firstChild.firstChild.firstChild。。用nodeValue時會返回null

而且,FLASH中讀XML和VB類的不一樣,第一層就已經是一個firstChild。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM