0

forEach ループ アクションを使用して、出力パネル内のすべてのアーティスト名をトレースしようとしていますが、構文に問題があります。結果が得られません (エラーもありません)。XML をロードして、子へのダイレクト パスをトレースできますが、動的にしたいです。

ここに私のXMLがあります:

<library>
  <artist title="DreamTheater">
        <album title="A Dramatic Turn of Events" art="images/bg.jpg" soundtrack="audio/soundtrack.mp3">
            <tracks>      
                <track>On the Backs of Angels</track>
            </tracks>
        </album>
    </artist>

    <artist title="Rush">
        <album title="2112" art="">
            <tracks>      
                <track>Something For Nothing</track>
            </tracks>
        </album>
    </artist>   
</library>

ここに私のAS3関数があります:

function artistListLoad():void{ 
    for each (var artist:XML in mainXML) { 
    trace(artist);                        
    } 
}

私は forEach ループの初心者で、まだ理解していないので、コメントをいただければ幸いです。

4

1 に答える 1

2

まず、 XML 内のノードmainXML.artistを反復処理する場合は、次のようにユーザーを指定する必要があります。artist

for each(var artist:XML in mainXML.artist)

そこからartist、XML の各ブロック内の子、属性、および子の属性にアクセスできます。簡単なサンプル:

function artistListLoad():void
{ 
    for each(var artist:XML in mainXML.artist)
    {
        trace(artist.@title);
        trace(artist.album.@title);
    } 
}

記号はノードの属性を選択するために使用されますが、@記号がないとノード内の子を選択することに注意してください。

于 2013-03-19T05:05:18.007 に答える