2012-12-05 3 views
1

저는 flex 개발에 익숙하지 않습니다. 웹 기반 응용 프로그램을 개발하려고합니다. 어떻게 든 나는 편안함을 느낀다. xml 문서와 관련된 몇 가지 쿼리가 있습니다.값을 얻는 방법 동작 스크립트의 XML 객체에서

내 웹 서비스에서 일부 데이터베이스 작업을 수행하고 일부 XML 데이터를 XmlDocument Object 형식으로 반환합니다.

나는 기능

public function objectToXML1(obj:Object):XML { 
       var qName:QName = new QName("DATA"); 
       var xmlDocument:XMLDocument = new XMLDocument(); 
       var simpleXMLEncoder:SimpleXMLEncoder = new SimpleXMLEncoder(xmlDocument); 
       var xmlNode:XMLNode = simpleXMLEncoder.encodeValue(obj, qName, xmlDocument); 
       var xml:XML = new XML(xmlDocument.toString()); 
       return xml; 
      } 

이하로 사용하여 구문 분석을 시도했지만 나는이 XML에서 데이터를 가져 오는 방법을 모르는

XML 포맷

<REQUEST> 
<STATUS>SUCCESS</STATUS> 
<MESSAGE>BP Retrive </MESSAGE> 
<DATA> 
<BOM> 
<BO> 
<BusinessPartners> 
<row> 
<CardCode/> 
<CardName/> 
<Phone1/> 
<Phone2/> 
<Cellular/> 
<EmailAddress/> 
</row> 
</BusinessPartners> 
</BO> 
</BOM> 
</DATA> 
</REQUEST> 
+3

Google "e4x as3". – sberry

+0

안녕하세요 Manish, 당신이 예제에서 XML 개체를 인코딩하려고 생각합니다. 당신이 원하는 것은 웹 서비스에서 XML 결과를 디코딩하는 것입니다. 작업에 SimpleXMLDecoder를 사용할 수 있습니다. – MonkeyMagiic

답변

0

미리 정의 된이있는 경우 구조를 사용하면 FlexXB을 사용하여 XML의 ActionScript 객체를 만들 수 있습니다. 꽤 쉽습니다. XML과 완전히 같아서 (즉 동일한 속성이 있어야 함을 의미하는) ActionScript 객체를 만들고 이러한 속성에 주석을 달았습니다. 따라서 FlexXB는 XML을 읽고 ActionScript 객체를 만듭니다.

프레임 워크를 사용하고 싶지 않다면 손으로도 할 수 있습니다. 속성을 읽으려면 객체 이름을 얻기 위해 [email protected]을 사용하십시오. xmlElement.name().localName. 몇 가지 기능이 있지만 자동 완성 기능이 XML 요소에서 작동하지 않기 때문에 올바른 기능을 찾기가 다소 어렵습니다. Here은 XML 작업 방법을 설명하는 Adobe의 기사입니다. Basicall을 사용하면 노드 이름을 속성 이름으로 사용할 수 있습니다. 귀하의 경우에는 xmlElement.Phone1 등등을 쓸 수 있습니다.

희망 하시겠습니까?

+0

안녕하세요, 답장을 보내 주셔서 감사합니다. FlexXB는이 클래스가 xml을 액션 스크립트 객체로 변환하는 데 사용되는 것을 보았습니다. 내 경우 문자열로 순수한 XML입니다. 실제로 XML 문자열은 약 2000 개의 태그를 가지고 있으며이 XML을 일부 데이터베이스 작업을 수행하는 웹 서비스에 보내야한다고 말합니다. – Manish

+0

데이터베이스에서 일부 데이터를 가져 오려면 XML 문서를 반환하는 표준 구성 요소가 있습니다. 따라서 UI 컨트롤을 사용하여 XML을 바인딩하는 양방향 바인딩을 사용하여 새 레코드를 추가하고 업데이트하기위한 하나의 공통 XML 파일 만있게됩니다. 내 RESPONSE XML에는 일부 메타 데이터가 있으며 실제 데이터는 태그에 있습니다. XML 객체 – Manish

+0

으로 변환 할 수 있도록 DATA (ie .xml)의 값을 문자열로 변환하려고합니다. 올바르게 이해했다면 DATA 노드 만 있으면됩니다. 당신은 당신이 DATA 노드를 발견 할 때까지 엘리먼트들을 루핑함으로써 그것을 할 수있다. (node.localName() == "DATA") if 나는 코드를 테스트하지 않았다. : for (var node : XML in xml.children()) 그러나 그것은 올바른 방향으로 당신을 인도해야합니다. – mvieghofer

관련 문제