[英]XML in 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>
放入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),它跟蹤所有跟蹤對象。
我究竟做錯了什么?
先感謝您,
馬泰奧
您可以使用foreach遍歷XML對象並將值分配給數組。 對於您的情況,您必須調用xml.tracklist.track [0],xml.tracklist.track [1]等,以獲取相應的軌道。
我認為您做對了。 只要記住您有空的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內容(而不僅僅是文本內容)。
要獲取單個內容,請嘗試..
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.