2011-08-01 1 views
1

:String 변수를 사용하여 XML 속성 값에 액세스하는 방법은 무엇입니까? 어떻게 필터링에 적용 할 수 있습니까? 플렉스에서 E4X를 사용

[email protected] 

에 액세스 할 수

var attr : String = "foo"; 
var xml : XML = 
    <resultSet> 
     <node foo="1"/> 
    </resultSet>; 

이 어떻게 변수 "ATTR"를 사용할 수는 내가

[email protected][attr] 

와 함께 할 수 있다고 생각하지만이 '아무튼 작동하지 않는 것 같습니다. 이 속성을 동적 값으로 액세스하려면 어떻게해야합니까?

편집 : 두

[email protected][attr]; 

xml.node.attribute(attr); 

일, Constantiner 제안한다.

업데이트 :

내가이 형태로 된 XMLList를 가지고 말 :

var bar:XML = 
    <resultSet> 
     <node>value</node> 
    </resultSet>; 

내가 "foo는"일치 이상 원래의 XML을 필터링 할 줄의 노드에서 "값"속성과.

본질적 I 원래 값

Constantiner 언급로 각 XML 행

[email protected] == bar.value 

는 I 푸의 값에 의해 원래의리스트를 필터링 할 수 있도록 원본 XML의 하위 목록을 할 하지만 여러 값으로 필터링하고 싶다면 어떻게해야합니까? 아마도

xml.node.(bar.node.contains(attribute(foo)) ? attribute(foo) : null); 

또는 깨끗한 방법 대신에 널 (null) :

내가 좋아하는 뭔가를 할 수 있습니까?

+0

trace (xml.node. @ [attr])는 나를 위해 "1"을 반환하지만 Constantiner의 대답에 따라 속성 메서드에 매개 변수로 문자열을 전달하는 것이 더 깔끔합니다. – TheDarkIn1978

답변

2

xml.node.attribute(attr)을 사용해보세요.

+0

감사합니다. xml.node.attribute와 xml.node. @ [attribute]는 단일 노드에서 작동하지만 e4x 필터는 어떻게됩니까? 특정 속성과 일치하는 노드의 XMLList를 가져 오려면 어떻게합니까? xml.node. (@ [attribute] == value) 작동하지 않는 것 같습니까? – pclem12

+0

XML'xml.node. (attribute ("foo") == 1)'에 대해 잘 작동합니다. 'xml.node. (attribute (attr) == 1)'과 같은 것을 시도 했습니까? – Constantiner

+0

아니면'xml.node. (attribute (attr) == value)'입니까? – Constantiner