如何使用forEach循环跟踪AS3中的XML子代码?

时间:2013-03-19 04:06:30

标签: xml actionscript-3 foreach

我正在尝试使用forEach循环操作来跟踪输出面板中的每个Artist名称,并且使用语法时遇到困难。我没有得到任何结果(甚至没有错误)。我已经加载了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循环的初学者,但还不理解,所以感谢评论!

1 个答案:

答案 0 :(得分:2)

首先,如果要迭代XML中的mainXML.artist节点,则需要用户artist

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

从那里,您可以访问XML中每个artist块内的子项,子属性和属性。快速样本:

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

请注意,@符号用于选择节点的属性,如果没有它,您将在节点中选择子节点。