2012-07-10 5 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

+0

e4x를 사용하여 노드의 색인을 얻을 수 있다고 생각하지 않습니다 ... – mamapitufo

0

문장은 int 변수가 아니라 XMLList를 반환합니다. .

var에 desiredIndex :

childIndex에 메소드는 XML 트리의 내부 노드의 인덱스를 반환 INT = Country.country (@ label.toString() == myCountry) .childIndex();

관련 문제