2012-06-21 57 views
0

我一直試圖讓軌道出來,看起來像這樣Actionscript 3中的XML?

<?xml version="1.0"?> 
<tracklist> 
    <track ID="4" title="Track01" artist="Artist01" url="" length="" coverURL=""/> 
    <track ID="1" title="Track02" artist="Artist02" url="" length="" coverURL=""/> 
    <track ID="8" title="Track03" artist="Artist03" url="" length="" coverURL=""/> 
</tracklist> 

我的XML文件到一個數組在ActionScript 3

我無法弄清楚。

我想它是這樣的:

var myLoader:URLLoader = new URLLoader(); 
myLoader.load(new URLRequest("http://localhost:8888/Fabse/src/getCommonPlaylist.php")); 
myLoader.addEventListener(Event.COMPLETE, processXML); 

    function processXML(e:Event):void 
    { 
    var xml:XML= new XML(e.target.data); 
    xml.ignoreWhitespace=true; 

    var list:XMLList = XMLList(xml.track); 


    } 

然後我嘗試了十億的方式來獲取數據出名單或只有空白痕跡「XML」變量並沒有任何成功的。唯一可行的是追蹤所有追蹤對象的trace(xml.track)。

我在做什麼錯?

謝謝你在前進,

利瑪竇

+0

基本上,我需要一個這樣的數組跟蹤[0-2] – matteok

回答

0

您可以通過XML對象使用的foreach循環和分配價值,你的陣列。你的情況,你必須調用xml.tracklist.track [0],xml.tracklist.track [1]等...來獲得相應的軌道。

0

我認爲你做對了。請記住,您有空的XML節點,並且正在使用屬性。

默認情況下,我認爲toString()使用文本節點的值,所以你可能想在調試時使用toXMLString()

嘗試這樣:

var myLoader:URLLoader = new URLLoader(); 
myLoader.load(new URLRequest("http://localhost:8888/Fabse/src/getCommonPlaylist.php")); 
myLoader.addEventListener(Event.COMPLETE, processXML); 



    function processXML(e:Event):void 
     { 
     var xml:XML= new XML(e.target.data); 
     xml.ignoreWhitespace=true; 

     var tracks:XMLList = xml.track; 
     trace("tracks\n",tracks); 
     for each(var track:XML in tracks) trace('track',track,'track.toXMLString()',track.toXMLString()); 


     } 

注意跟蹤每個軌道,如果我只是做track說,沒有東西顯示,雖然節點是存在的,但使用track.toXMString()所有的XML時節點的內容(不僅僅是文本內容)顯示出來。

0

要獲得單個內容嘗試它像..

trace(xml.elements("track").length()); // 3 
trace(xml.elements("track")[0].toXMLString()); // <track ID="4" title="Track01" artist="Artist01" url="" length="" coverURL=""/> 
trace(xml.name().localName); // tracklist 
trace(xml.attributes()[0]); // 4 
trace(xml.attributes()[0].name()); // ID