XML的創建、獲取屬性
標籤的屬性使用@符號來獲取,子標籤直接.標籤名稱來獲取
//XML的創建
var xml:XML = new XML("<song id='1'><title>What you know?</title><artist>Steve and the flubber blubs</artist><year>1989</year><lastplayed>2006-10-17-08:31</lastplayed></song>");
var xml2:XML = <song><title>What you know?</title><artist>Steve and the flubber blubs</artist><year>1989</year><lastplayed>2006-10-17-08:31</lastplayed></song>;
//XML訪問
var id:String = xml.@id;
var title:String = xml.title;
輸出
output:
1 What you know?
XML遍歷
var xml3:XML = new XML("<songs><song id='1'><title>What you know?</title><artist>Steve and the flubber blubs</artist><year>1989</year><lastplayed>2006-10-17-08:31</lastplayed></song>"+
"<song id='2'><title>Love you for ever</title><artist>Mike</artist><year>2004</year><lastplayed>2006-10-17-08:31</lastplayed></song></songs>");
var songs:XMLList = xml3.song;
//第一種遍歷方式
for each(var song:XML in songs){
trace(song.title);
}
//第二種遍歷方式
for(var i:String in songs){
trace(i + "---" + songs[i].title);
}
輸出
What you know?
Love you for ever
XML過濾
musicList是外部的一個List控件,labelFunc是控制List輸出樣式的
//XML的過濾
var mySong:XMLList = xml3.song.(title == "What you know?" || artist == "Steve and the flubber blubs");
//加載外部XML文件
var urlRequest:URLRequest = new URLRequest("songs.xml");
var urlLoader:URLLoader = new URLLoader();
urlLoader.load(urlRequest);
urlLoader.addEventListener(Event.COMPLETE,compHandler);
function compHandler(e:Event):void{
var mySongs:XML = new XML(urlLoader.data);
musicList.dataProvider = new DataProvider(mySongs);
musicList.labelFunction = labelFunc;
}
function labelFunc(item:Object):String{
return item.id + "\t" + item.title + "\t" + item.artist;
}