0

私はこのような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>

ActionScript3の配列に変換します。

私はそれを理解できませんでした。

私はこのようにそれを試しました:

var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("http://localhost:8888/Fabse/src/getCommonPlaylist.php"));
myLoader.addEventListener(Event.COMPLETE, processXML);

  function processXML(e:Event):void
  {
    var xml:XML= new XML(e.target.data);
    xml.ignoreWhitespace=true;

    var list:XMLList = XMLList(xml.track);


   }

次に、リストまたは「xml」変数からデータを取得するための10億の方法を試しましたが、トレースは空白で、成功しませんでした。動作するのは、すべてのトラックオブジェクトをトレースするtrace(xml.track)だけです。

私は何が間違っているのですか?

前もって感謝します、

マッテオ

4

3 に答える 3

0

単一のコンテンツを取得するには、..のように試してください。

trace(xml.elements("track").length()); // 3
trace(xml.elements("track")[0].toXMLString()); // <track ID="4" title="Track01" artist="Artist01" url="" length="" coverURL=""/>
trace(xml.name().localName); // tracklist
trace(xml.attributes()[0]); // 4
trace(xml.attributes()[0].name()); // ID
于 2012-06-21T17:09:22.233 に答える
0

foreach を使用して XML オブジェクトをループし、配列に値を割り当てることができます。あなたの場合、対応するトラックを取得するには、xml.tracklist.track[0]、xml.tracklist.track[1]などを呼び出す必要があります。

于 2012-06-21T16:47:08.543 に答える
0

あなたは正しいことをしていると思います。空の XML ノードがあり、属性を使用していることを思い出してください。

デフォルトでは、toString() はテキスト ノードの値を使用すると思いますので、デバッグ時にはtoXMLString()を使用することをお勧めします。

次のようなことを試してください:

var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("http://localhost:8888/Fabse/src/getCommonPlaylist.php"));
myLoader.addEventListener(Event.COMPLETE, processXML);



     function processXML(e:Event):void
      {
        var xml:XML= new XML(e.target.data);
        xml.ignoreWhitespace=true;

        var tracks:XMLList = xml.track;
        trace("tracks\n",tracks);
        for each(var track:XML in tracks) trace('track',track,'track.toXMLString()',track.toXMLString());


       }

各トラックのトレースに注意してくださいtrack。ノードが存在する場合でも、何も表示されませんが、track.toXMString() を使用すると、ノードのすべての xml コンテンツ (テキスト コンテンツだけでなく) が表示されます。

于 2012-06-21T16:56:54.187 に答える