前回の第26回は
外部XMLデータの読込み
まずは、
<?xml version="1.0" encoding="UTF-8"?>
<cs4>
<product suite="Web">
<name>Flash CS4 Professional</name>
<price>699</price>
</product>
<product suite="Web">
<name>Dreamweaver CS4</name>
<price>399</price>
</product>
<product suite="Design">
<name>Photoshop CS4</name>
<price>699</price>
</product>
<product suite="Design">
<name>Illustrator CS4</name>
<price>599</price>
</product>
</cs4>
URLLoaderクラスで外部XMLファイルを読込むフレームアクションは、
// フレームアクション
// フレームアクション
var _txt:TextField = new TextField();
var myLoader:URLLoader = new URLLoader();
var myRequest:URLRequest = new URLRequest("adobe_cs4.xml");
addChild(_txt);
_txt.autoSize = TextFieldAutoSize.LEFT;
_txt.wordWrap = true;
myLoader.addEventListener(Event.COMPLETE, xSetText);
myLoader.load(myRequest);
function xSetText(eventObject:Event):void {
var cs4_xml:XML = XML(myLoader.data); // テキストをXMLデータに変換
// 以下の2行のステートメントについては後述
var product_web:XMLList = cs4_xml.product.(@suite == "Web");
var name_str:String = product_web[0].name.toString();
_txt.text = name_str;
}
外部XMLファイルロードした後、
XMLデータから必要な値を取出す
つぎは、
XMLデータはスクリプト上で、
var cs4_xml:XML =
<cs4>
<product suite="Web">
<name>Flash CS4 Professional</name>
<price>699</price>
</product>
<product suite="Web">
<name>Dreamweaver CS4</name>
<price>399</price>
</product>
<product suite="Design">
<name>Photoshop CS4</name>
<price>699</price>
</product>
<product suite="Design">
<name>Illustrator CS4</name>
<price>599</price>
</product>
</cs4>;
XMLインスタンスをtrace()関数で[出力]すると、
それでは、
var products:XMLList = cs4_xml.product;
trace(products);
取出したノード群のXMLListインスタンスは、
XMLListクラスのインスタンスは、
var first_product:XML = products[0];
trace(first_product);
XMLListインスタンスにノード名をドット演算子(.)で指定して、
var names:XMLList = products.name;
trace(names);
また、
var products_699:XMLList = products.(price == 699);
trace(products_699);
条件にはノードの属性も使える。指定するときは、
var products_web:XMLList = products.(@suite == "Web");
trace(products_web);
さらに、
var products_web:XMLList = products.(@suite == "Web" && price > 600);
trace(products_web);
本稿の結びとして、
var product_web:XMLList = cs4_xml.product.(@suite == "Web");
var name_str:String = product_web[0].name.toString();
まず、
次回は、
