XML & URLLoader

var MyXML:XML

/* 1 */
var loader:URLLoader = new URLLoader ()
var request:URLRequest = new URLRequest ("http://ws.fujisan.co.jp/search/category")
try {
	loader.load(request)
} catch(error:SecurityError) {
	trace("ERROR")
}

/* 2 URLLoaderのコンストラクタの引数にURLRequestを入れるとロードを始める  */
/*
var request:URLRequest = new URLRequest ("http://ws.fujisan.co.jp/search/category")
var loader:URLLoader = new URLLoader (request)
*/

loader.addEventListener(Event.COMPLETE, loaderComplateHandler)
loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler)

function loaderComplateHandler(event:Event):void {
	// 無くても動く、loaderの参照を上書きしてるだけ
	var loader:URLLoader = URLLoader(event.target)
	// 特殊文字のまま全部取得
	// trace(loader.data)

	try {
		MyXML = new XML (loader.data)
		readNodes(MyXML)
		// 普通のテキストで全部取得
		// trace(MyXML.toXMLString())
	} catch (e:TypeError) {
		// TypeErrorは引数の型が間違っていたらスローする
		trace("Could not parse the XML file.");
	}

	// 普通のテキストで全部取得
	// trace(MyXML.toXMLString())
}
function readNodes (node:XML):void {
	// ルート直下のタグをぶつ切りにする
	for each (var element:XML in node.elements()) {
		// さらにCategoryName(子エレメント)があれば値を取り出す
		trace(element.CategoryName)
		trace("***************************")
		// 子エレメントのタグを巡回する
		//readNodes(element);
	} 
}
}
}
function errorHandler(e:IOErrorEvent):void {
	trace("IOErrorEvent.IO_ERROR")
}