XMLオブジェクト

Action ScriptでXMLを扱う際に使うのがXMLオブジェクトです。

XMLオブジェクトの特徴

サーバーとの間でXML形式でのデータの送受信ができます。

XMLオブジェクトの生成

XMLオブジェクトは、new XML()によって生成されます。

mikey_xml = new XML();

mikey_xml = new XML("<person><name>マイキー</name><name><name>エミリー</name><name>ローラ</name></person>");

XMLオブジェクトのプロパティ

attributes属性名を要素とする配列
childNodes子ノード名を要素とする配列
firstChild最初の子ノード
lastChild最後の子ノード
nextSibling次のノード
previousSibling前のノード
nodeNameノード名
nodeTypeノードタイプ
nodeValueノードの値
perentNode親ノード
ignoreWhiteXMLデータ内の空白文字・改行を無視
xmlDeclXML宣言
docTypeDeclDOCTYPE
contentTypeデータを送信するときのMIMEタイプ
loadedデータの読み込みが終了したかどうか
statusXMLデータが正常に読み込まれたかを解析

ノードの参照

XMLオブジェクトのプロパティを使ってノードを参照します。

例)ノードの参照

mikey_xml = new XML("<person><name>マイキー</name><name>エミリー</name><name>ローラ</name></person>");

trace(mikey_xml.firstChild.firstChild.firstChild.nodeValue); // マイキーと表示

trace(mikey_xml.firstChild.firstChild.nextSibling.firstChild.nodeValue); // エミリーと表示

trace(mikey_xml.firstChild.childNodes[2].firstChild.nodeValue); // ローラと表示

trace(mikey_xml.firstChild.childNodes.length); // ノードの数(3)を表示

XMLオブジェクトのメソッド

appendChild()親ノードの最後に子ノードを追加
insertBefore()指定した子ノードの一つ前に子ノードを追加
removeNode()指定したノードを削除
cloneNode()ノードの複製を作成
createElement()XMLノードを作成
createTextNode()XMLテキストノードを作成
hasChildNodes()子ノードがあるかどうか
parseXML()文字列をXMLデータとして読込
toString()XMLデータを文字列に変換
addRequestHeader()HTTPリクエストヘッダの値を設定
load()URLからXMLデータを読込
send()URLにXMLデータを送信
sendAndLoad()URLにXMLデータを送信し、戻り値を読込
getBytesLoaded()読み込まれたデータの量
getBytesTotal()読み込むデータの量

ノード・テキストノードの作成

createElement(), createTextNode()を使ってノードを作成します。 作成したノードやテキストノードはappendNode()insertNode()を 実行するまではどのノードにも属しません。

XMLオブジェクト.createElement(作成するノード名);

XMLオブジェクト.createTextNode(テキスト);

ノードの追加

appendChild(), insertBefore()を使ってノードを追加します。

XMLオブジェクト.appendChild(追加するノード);

XMLオブジェクト.insertBefore(追加するノード, 追加するノードの位置);

ノードの削除

removeNode()を使ってノードを削除します。

XMLオブジェクト.removeNode();

例)ノードの作成・追加・削除

mikey_xml = new XML("<person><name>マイキー</name><name>エミリー</name><name>ローラ</name></person>");

mikey_xml.firstChild.childNodes[2].removeNode(); // ローラを削除
trace(mikey_xml); 

tonyNode = mikey_xml.createElement("name");
tonyTextNode = mikey_xml.createTextNode("トニー");
charlesNode = mikey_xml.createElement("name");
charlesTextNode = mikey_xml.createTextNode("チャールズ");

mikey_xml.firstChild.appendChild(tonyNode); // 末尾にトニーを追加
tonyNode.appendChild(tonyTextNode);
mikey_xml.firstChild.insertBefore(charlesNode, mikey_xml.firstChild.firstChild); // 頭にチャールズを追加
charlesNode.appendChild(charlesTextNode);

trace(mikey_xml);

XMLオブジェクトの読込み

load()を使ってXMLファイルからXMLデータを読み込みます。

XMLオブジェクト.load(URLアドレス);

例)XMLオブジェクトの読込み

サンプルXMLファイル GG.xml

<?xml version="1.0" encoding="Shift_JIS" ?>
<characters>
    <character>
        <name>SOL BADGUY</name>
        <bloodtype>unknown</bloodtype>
    </character>
    <character>
        <name>KY KISKE</name>
        <bloodtype>AB</bloodtype>
    </character>
</characters>

読込スクリプト

GG_xml=new XML();
GG_xml.ignoreWhite=true; // 空白・改行を無視
GG_xml.load("GG.xml"); // XMLファイル名を指定して読込み

GG_xml.onLoad = function () { // 読込が終了したら
    trace(GG_xml.xmlDecl); // XML宣言を表示
    trace(GG_xml.firstChild); // XMLデータの中身を表示
}