Action ScriptでXMLを扱う際に使うのがXMLオブジェクトです。
サーバーとの間でXML形式でのデータの送受信ができます。
XMLオブジェクトは、new XML()によって生成されます。
mikey_xml = new XML(); mikey_xml = new XML("<person><name>マイキー</name><name><name>エミリー</name><name>ローラ</name></person>");
attributes | 属性名を要素とする配列 |
---|---|
childNodes | 子ノード名を要素とする配列 |
firstChild | 最初の子ノード |
lastChild | 最後の子ノード |
nextSibling | 次のノード |
previousSibling | 前のノード |
nodeName | ノード名 |
nodeType | ノードタイプ |
nodeValue | ノードの値 |
perentNode | 親ノード |
ignoreWhite | XMLデータ内の空白文字・改行を無視 |
xmlDecl | XML宣言 |
docTypeDecl | DOCTYPE |
contentType | データを送信するときのMIMEタイプ |
loaded | データの読み込みが終了したかどうか |
status | XMLデータが正常に読み込まれたかを解析 |
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)を表示
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);
load()を使ってXMLファイルからXMLデータを読み込みます。
XMLオブジェクト.load(URLアドレス);
サンプル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データの中身を表示
}
Programming Laboratory (Shio seminar)