1/27 XML メモ2

外部XMLファイルを読み込む際の流れ。(テキスト)

  • URLLoaderのインスタンスを作る var loader:URLLoader = new URLLoader();
  • 読み込むXMLファイルをURLRequestで指定する var urlReq:URLRequest = new URLRequest(" ******.xml"); // 読み込むXMLファイルを指定
  • load()で読み込む loader.load(urlReq);
  • 読み込んだデータをXMLオブジェクトに変改し取り出す。 var xmlObj:XML = new XML(loader.data);
  • フィールドに表示をする fild.text = xmlObj.contact.web.text();

外部XMLファイルを読み込む際の流れ。(画像ファイル)

  • URLLoaderのインスタンスを作る var loader:URLLoader = new URLLoader();
  • URLRequest var urlReq = new URLRequest();
  • 読み込む xmlLoader.load(urlReq);
  • 受信したxmlから値を取り出す var xmlObj:XML = new XML(xmlLoader.data);

クロスドメインからXMLファイルを読み込む

クロスドメインドメインをまたいで外部の情報を読み込む場合、そのままではセキュリティエラーになります。これを解決するには、XMLファイルが置いてあるサーバーから読み込みを許可するポリシーファイルを読み込みます。XMLファイルを読み込むよりも前に一回だけ行えばいいので、クラス定義の前にスクリプトを書くことができます。 例

Security.loadPolicyFile("読み込むドメインの crossdomain.xml");

流れ

  • XMLLoaderのインスタンスを作成 myLoader = new XMLLoader();
  • xmlデータを読み込む var url:String = "http://albatrus.com/test/test.xml"; myLoader.loadXML(url);
  • 読み込んだxmlには名前空間が設定されているので、あらかじめ「use namespace」を使って値にアクセスできるように名前空間の使用を宣言する。よく理解できないので詳しくはこちらへ。
  • 読み込んだxmlからXMLを使って、必要な値を取り出す。 var xmlObj:XML = myLoader.xml; var names:XMLList = xmlObj.namelist.name;
  • 取り出した値を画面上に表示する。この例では、nameの[code]と[data]を取り出して表示する。 for(var i:int = 0; i < nanes.length() ; i++){ var name:XML = names[i]; fid.appendText(name.coad+" : "+ name.data); }