E4X 언어 확장의 일부로 도입된 for each..in 문은 XML 객체뿐만 아니라 Object 및 Array에 대해서도 사용할 수 있습니다.
1) for each..in 문은 객체의 속성 중 고정된 속성은 제외하고 동적 속성만 반복합니다.
2) 고정된 속성은 클래스 정의의 일부로 정의된 속성입니다.
for each..in 문을 사용자 정의 클래스의 인스턴스와 함께 사용하려면 dynamic 속성을 사용하여 클래스를 선언해야 합니다.
* for..in 문과는 달리 for each..in 문은 속성 이름 대신 객체의 속성 값을 반복합니다.
- for in : 객체의 속성 이름을 반환
- for each in : 객체의 속성 값을 반환
var menu:XML = <menu>
<menuItem label="File" size="100kb">
<menuItem label="New" size="200kb" />
</menuItem>
<menuItem label="Help" size="300kb">
<menuItem label="About" size="400kb" />
</menuItem>
this is Text Node
</menu>;
for each ( var element:XML in menu.elements() )
{
trace( element.@label );
trace( element.@size );
}
[ 출력 결과 ]
File
100kb
Help
300kb
walk label : File
walk size : 100kb
walk label : New
walk size : 200kb
walk label : Help
walk size : 300kb
walk label : About
walk size : 400kb
* elements() 메서드는 XML의 모든 자식노드를 XMLList로 반환한다.