2011-02-23 3 views
0

나는 ActionScript에서 HTTPService를 가진 XML 파일을 읽어,이 같은 ArrayCollection에로를 걸었습니다 (수치는 반복 노드이며, 데이터는 루트 노드입니다) :Actionscript Arraycollection에서 XML 속성을 읽는 방법?

graphData = new ArrayCollection([event.result.data.readings]); 

그러나 내가 변경하려면 XML 파일의 형식은 값을 태그 사이의 값 대신에 속성에 넣기 위해 읽습니다 (이 작업을 수행하는 이유는 거대한 것이고이 메서드는 읽기 하나당 5 개의 속성이있는 한 줄만 필요합니다. 별도의 줄에 태그를 닫음).

배열 컬렉션에로드하는 것이 좋지만 속성에 액세스하려면 어떻게해야합니까? 나는 다음과 같이 시간 값 말에 액세스 할 전에 :

graphData.getItemAt(0)[email protected] 

하지만이 나던 작품은, 그것을 할 수 있습니다

graphData.getItemAt(0).time 

그래서 난 그것으로 쉽게 할 수있다 생각?

+0

사실 가장 좋은 해결책은 데이터를 XML 목록으로로드하는 것일 수 있습니다. 이것이 유일한 방법입니까? – Taro

+0

다음 줄에서 디버그 중단 점을 놓을 때 graphData에 무엇이 나타 납니 까? graphData = new ArrayCollection ([event.result.data.readings]); 변수 창에서 graphData를 확장하여 ArrayCollection의 각 요소의 객체 유형을 볼 수 있어야합니다. Flex에서 E4X가 작동하는 방식은 다소 수수께끼 일 수 있습니다. 그러나 주어진 이름을 가진 여러 노드를 "보는 것"이라면 배열 컬렉션에서 반환합니다. 그렇지 않으면 Object없이 더 많은 정보가 여기에 뭐가 잘못되었는지 말하기는 어렵습니다. – shaunhusain

+0

XMLListCollection을 사용하지 않는 이유는 무엇입니까? XML을 값 객체로 변환하거나이를 ArrayCollection에 넣으십시오. 또는 AMF를 통해 Value Objects를 반환하고 XML을 전혀 처리하지 않도록 서비스를 다시 수행하십시오. – JeffryHouser

답변

0

코드 :

graphData = new ArrayCollection([event.result.data.readings])

그냥 된 XMLList 될 것입니다 거기에 하나 개의 값으로 교류를 만듭니다. 왜 그렇게하고 싶지는 모르지만, 아마도 당신이 염두에 두지 않은 것이 겠지요. 다음과 같이하십시오 :

var graphData:XMLList = event.result.data.readings; 
// Now get data for individual readings 
trace("time for first reading", graphData[0][email protected]); 
trace("time for second reading", graphData[1][email protected]); 
+0

그 점에 대해 감사드립니다. 예를 들어 XML 파일에 단 하나의 항목 만있는 사례에 대한 사과를했습니다. 나는 당신이 제안한 것을 시도했지만 여전히 작동하지 않을 것입니다, 아마도 xml 형식의 IM은 틀린 것입니까? 그 다음 ' \t <판독 온도 = "37.506"시간 = "1297642337200"/> 또한' , httpservice의 형식을 e4x로 변경해야합니까? – Taro

+0

XML 구문을 사용하여 세트 내에서 탐색/선택하려는 경우 결과 형식을 객체가 아닌 e4x로 지정하고 싶지만 객체에는 적용되지 않습니다. – Sophistifunk

관련 문제