7-5-1.XMLのロード

April 13, 2007

次のようなXMLドキュメントがあったとします。

example.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

(トラックバックは承認後に公開されます)


コメント

コメントを投稿


(コメントは承認後に公開されます)
検索 リンク 全エントリー RSSフィード カテゴリー 月別アーカイブ
コピーライト

powered by Movable Type Pro 4.261
hosted by