0

我有以下 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 的循环,这意味着加拿大是 XML 列表中的第二个元素?

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

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

但它给出了错误No such variable: @label

4

2 回答 2

1

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

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

    index++;
}

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

我希望这有帮助

于 2012-07-10T20:43:09.520 回答
0

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

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

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

于 2013-02-02T14:11:46.053 回答