4

次のようにphpを使用してXMLファイルを動的に作成しようとしています:

  header ("content-type: text/xml");

  // create doctype
  $dom = new DOMDocument("1.0");

  // create root element
  $root = $dom->createElement("tracklist");
  $dom->appendChild($root);
  $dom->formatOutput=true;

  // create child element
  foreach ($commonPlaylist as $value) {

     $trackArray = getTrackForID($value['ID']);

     $item = $dom->createElement("track");
     $root->appendChild($item);

     foreach ( $trackArray as $key => $value) {
      $attr = $dom->createAttribute($key);
      $item->appendChild($attr);

          $attrValue = $dom->createTextNode($value);
      $attr->appendChild($attrValue);
     }

  }

 echo $dom->saveXML();

ファイルの出力は、正常に動作する xml です。

<?xml version="1.0"?>
   <tracklist>
        <track ID="4" title="Track01" artist="Artist01" url="" length="" coverURL=""/>
        <track ID="1" title="Track02" artist="Artist02" url="" length="" coverURL=""/>
        <track ID="8" title="Track03" artist="Artist03" url="" length="" coverURL=""/>
   </tracklist>

ただし、次のコードを使用してこのデータを as3 に取得する場合:

var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("getPlaylist.php"));
myLoader.addEventListener(Event.COMPLETE, processXML);

function processXML(e:Event):void
{
    var myXml:XML= new XML(e.target.data);
    trace(myXml);  // The variable is being traced.

}

出力がまったく得られません。ファイルを文字列として読み取ると、PHP コード全体が取得されます。私は何を間違っていますか?

よろしくお願いします。

よろしく、 マッテオ

4

3 に答える 3

3

ファイルを文字列として読み取ると、PHPコード全体が取得されます

サーバー側で実行されていないようです。PHPがインストールされているサーバーでホストしていますか?

于 2012-06-21T14:56:03.277 に答える
2

変数名を確認してください

  • myXMLをトレースしていて、XML変数名はmyXmlです。
于 2012-06-21T14:55:55.737 に答える
0

processXML()実際にトリガーされますか?次のコードのように変更してみて、「こんにちは!」が表示されるかどうかを確認してください。トレースした部分。

function processXML(e:Event):void
{
    trace('Hi!');
    var myXml:XML= new XML(e.target.data);
    trace(myXML);
}

ところで、Flash デバッガーを使用すると、何が問題なのかを推測するよりもはるかに役立つ場合があります:) Flash Professional に同梱されているデバッガーは時間がかかるので、Flash プロジェクトの作業中に多くの時間を節約できるDeMonster デバッガーのみをお勧めします。Fiddlerのような HTTP トラフィック分析ツールを使用しても問題ありません。

于 2012-06-21T15:05:33.253 に答える