XML 変数の初期化

XML オブジェクトに対しては、次のようにして XML リテラルを割り当てることができます。

var myXML:XML = 
    <order>
        <item id='1'>
            <menuName>burger</menuName>
            <price>3.95</price>
        </item>
        <item id='2'>
            <menuName>fries</menuName>
            <price>1.45</price>
        </item>
    </order>

また、次のコードに示すとおり、XML データを含んだストリングから new コンストラクタを使用して XML オブジェクトのインスタンスを作成することもできます。

var str:String = "<order><item id='1'><menuName>burger</menuName>"
                            + "<price>3.95</price></item></order>";
var myXML:XML = new XML(str);

ストリング内の XML データが整形式でない場合 (閉じるタグが欠落している場合など) は、ランタイムエラーが発生します。

また、次のように XML オブジェクトに対してデータを参照で (他の変数から) 渡すこともできます。

var tagname:String = "item"; 
var attributename:String = "id"; 
var attributevalue:String = メ5モ; 
var content:String = "Chicken"; 
var x:XML = <{tagname} {attributename}={attributevalue}>{content}</{tagname}>; 
trace(x.toXMLString())
    // Output: <item id="5">Chicken</item>

指定した URL から XML データをロードするには、次のように URLLoader クラスを使用します。

import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;

var externalXML:XML;
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("xmlFile.xml");
loader.load(request);
loader.addEventListener(Event.COMPLETE, onComplete);

function onComplete(event:Event):void
{
    var loader:URLLoader = event.target as URLLoader;
    if (loader != null)
    {
        externalXML = new XML(loader.data);
        trace(externalXML.toXMLString());
    }
    else
    {
        trace("loader is not a URLLoader!");
    }
}

ソケット接続から XML データを読み取るには、XMLSocket クラスを使用します。詳細については、『ActionScript 3.0 リファレンスガイド』の XMLSocket を参照してください。


Flex 2.01