ActionScript3:如何搜索XML列表?

时间:2012-07-10 20:13:08

标签: xml actionscript-3

我有以下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>);

如何遍历列表以查找与存储在String变量myCountry中的值对应的索引号?例如,如果

var myCountry:String = "Canada";

如何创建一个返回索引值为1的循环,这意味着Canada是XML列表中的第二个元素?

或者,如果索引值1可以以其他方式返回,则可能不需要循环。我试过了:

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

但它会出现错误No such variable: @label

2 个答案:

答案 0 :(得分:1)

这样的事情应该做你想做的事情:

var index:int = 0;
for each (var country:XML in Country.country)
{
    if (country.@label == myCountry)
        break;

    index++;
}

Country变量应该命名为countries或类似的东西......通常大写的名称仅用于类)

我希望这会有所帮助

答案 1 :(得分:0)

你的句子返回一个XMLList,而不是一个int变量。

childIndex方法返回XML树中节点的索引:

var desiredIndex:int = Country.country。(@ label.toString()== myCountry).childIndex();