2012-07-10 17 views
0

我有以下XML的變量:ActionScript3:如何搜索XML列表?

public var Country:XML=new XML(
    <countries> 
     <country code="US" iso="840" label="United States" /> 
     <country code="CA" iso="124" label="Canada" /> 
     <country code="GB" iso="826" label="United Kingdom" /> 
     ... 
    </countries>); 

我將如何通過列表循環找到對應於存儲在字符串變量myCountry價值指數是多少?例如,如果

var myCountry:String = "Canada"; 

如何創建一個返回索引值爲1的循環,這意味着加拿大是XML列表中的第二個元素?

或者,如果可以以其他方式返回1的索引值,則循環是不必要的。我試過:

var desiredIndex:int = Country.country.(@label==myCountry) 

但它給出了錯誤No such variable: @label

回答

1

這樣的事情應該做你想要什麼:

var index:int = 0; 
for each (var country:XML in Country.country) 
{ 
    if ([email protected] == myCountry) 
     break; 

    index++; 
} 

(在Country變量應該命名爲countries或類似的東西...常規大寫的名稱僅用於類)

我希望這幫助

+0

謝謝mama pitufo!它完美的作品。你知道是否有可能在一條線上做所有事情嗎? – ggkmath 2012-07-10 20:48:58

+0

我不認爲你可以用e4x獲得節點的索引... – mamapitufo 2012-07-10 21:02:16

0

您的句子返回一個XMLList,而不是一個int變量。

childIndex方法返回XML樹內的節點的索引:

變種desiredIndex:INT = Country.country(@ label.toString()== myCountry).childIndex();