7-5-1.XMLのロード
April 13, 2007
次のようなXMLドキュメントがあったとします。
「entries」がトップのエレメント(ノード)となります。「entries」エレメントの属性でこのXMLドキュメントの名前空間を設定しています。
「entries」エレメントの下には「entry」という子エレメントが2つあり、「entry」エレメントには「entryTitle」「entryUrl」「entryDate」「entryBody」という4つの子エレメントがあります。そして、その中の「entryUrl」エレメントには属性「src」があります。
次のサンプルではXMLドキュメントをActionScript3.0で読み込んでいます。
基本的な手順は『6-3-3.テキスト、バイナリデータのロード』と同じです。
サンプル
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class Main extends Sprite {
private var url:String = "xml/example.xml";
private var _loader:URLLoader = new URLLoader;
private var _request:URLRequest = new URLRequest(url);
public function Main (){
_loader.load(_request);
_loader.addEventListener(Event.COMPLETE, loaded);
}
private function loaded(evt:Event):void {
var _loader :URLLoader = URLLoader(evt.target);
var externalXML:XML = new XML(_loader.data);
trace(externalXML.toXMLString());
}
}
}
toXMLString()メソッドを使うと、XMLオブジェクトのストリング表現を返します。
XMLオブジェクトがXMLデータを解析する際のオプションは次のプロパティで設定します。
ignoreComments
trueの場合、XMLのコメント行を無視します。次のようにfalseにするとコメント行も含めて出力されます。
デフォルトはtrue。
XML.ignoreComments = false;
var externalXML:XML = new XML(_loader.data);
trace(externalXML.toXMLString());
ignoreProcessingInstructions
xmlには外部スタイルシートの参照など<? 処理命令記述 ?>が含まれている場合があります。
このプロパティがtrueの場合、XML処理命令を無視します。falseにするとXML処理命令も含めます。
デフォルトはtrue。
XML.ignoreProcessingInstructions = false;
var externalXML:XML = new XML(_loader.data);
trace(externalXML.toXMLString());
ignoreWhitespace
trueの場合、テキストノードの先頭と最後の半角空白文字を解析時に無視します。falseにすると、半角空白文字が表示されます。
デフォルトはtrue。
(なお、falseの時、<?xml version="1.0" encoding="utf-8"?>行があるとエラー「TypeError: Error #1088: ルートエレメントに続くドキュメントのマークアップは整形式でなければなりません。」になりました)
XML.ignoreWhitespace = false;
var externalXML:XML = new XML(_loader.data);
trace(externalXML.toXMLString());
prettyPrinting
falseの場合、toString()メソッドとtoXMLString()メソッドで、XMLのタグとタグの間の空白文字が無視されます。
デフォルトはtrue。falseを指定すると、trueで改行されていた箇所が、</entryBody></entry><entry><entryTitle>のようにつながってストリング表現されます。
XML.prettyPrinting = false;
var externalXML:XML = new XML(_loader.data);
trace(externalXML.toXMLString());
prettyIndent
prettyPrintingプロパティがtrueの時、toString()メソッドとtoXMLString()メソッドが適用するインデントの量を指定します。
0を指定すると、インデントなしのストリング表現となります。デフォルトは2。
XML.prettyIndent = 0;
var externalXML:XML = new XML(_loader.data);
trace(externalXML.toXMLString());
参考URL
Adobe Flex 2 リファレンスガイド XMLクラス
トラックバック
トラックバックURL
(トラックバックは承認後に公開されます)

