2012-12-27 1 views
0

내 AS3 코드 :XML 외부 XML에서 (플래시 AS3를) 구문 분석 (웹 서비스)

loginBtn.addEventListener("mouseDown", sendData) 
function sendData(e:Event) { 
    var path:String = "http://server1.digitalmulia.com/~testing/webservice/auth/login"; 
    var myData:URLRequest = new URLRequest(path) 
    myData.method = URLRequestMethod.POST 
    var variables:URLVariables = new URLVariables() 
    variables.username = usernameField.text 
    variables.password = passwdField.text 
    myData.data = variables 
    var loader:URLLoader = new URLLoader() 
    loader.dataFormat = URLLoaderDataFormat.VARIABLES 
    loader.addEventListener(Event.COMPLETE, dataOnLoad) 
    loader.load(myData) 
} 
function dataOnLoad(e:Event){ 
    var xmldata = XML(e.target.data); 
    var xxx = xmldata.toString(); 
    var myFormat:TextFormat = new TextFormat(); 
    myFormat.font = "Arial"; 
    myFormat.size = 12; 
    myFormat.bold = true; 

    var myText:TextField = new TextField(); 
    myText.defaultTextFormat = myFormat; 
    myText.selectable = true; 
    myText.border = true; 
    myText.text = xxx; 
    myText.x = 10; 
    myText.y = 200; 
    myText.width = 300; 
    myText.height = 100; 
    addChild(myText); 

} 
stop() 

결과 :

퍼센트의 3C % 3Fxml % 20version = % 221% 2E0 %의 22 % 3 층 % 3E % 0A % 3Cxml % 3E % 3Cdatas % 2F % 3E % 3 정보 % 3E % 3Cpasswd % 3E5f4dcc3b5aa765d61d8327deb882cf99 % 3C % 2Fpasswd % 3E % 3C % 2 정보 % 3E % 3 오류 % 3E % 3Citem % 3EUsername % 20not % 20found % 20or % 20password % 20is % 20wrong % 3C % 2Fitem % 3E % 3C % 2Ferror % 3E % 3C % 2Fxml % 3E % 0A

무엇이 잘못 되었습니까? 내가 필요로하는 결과는 다음과 같습니다.

<xml> 
    <datas/> 
    <information> 
     <passwd>5f4dcc3b5aa765d61d8327deb882cf99</passwd> 
    </information> 
    <error> 
     <item>Username is null</item> 
     <item>Password is null</item> 
    </error> 
</xml> 

영어 불쾌한 사람에게 죄송합니다.

답변

1

unescape(xmldata.toString())으로 시도해보고 원하는 출력을 얻을 수 있습니다.

 function dataOnLoad(e:Event) 
     { 
      var xmldata:XML = XML(e.target.data); 
      var xmlStr:String = unescape(xmldata.toString()); 
      xmldata = XML(xmlStr);   
     } 

escape ("args") 함수는 인수를 문자열로 변환하고 URL 인코딩 형식으로 인코딩합니다.

escape("escape unescape"); 

출력 : escape%20unescape

함수 언 이스케이프는 모든 16 진수 시퀀스를 ASCII 문자로 변환합니다. 예를 들어,

unescape("escape%20unescape"); 

출력 : escape unescape

+0

대단히 감사합니다. Raja, 작동합니다. :) –

0

난 당신이 URLLoaderDataFormat.VARIABLES 유형을 선택한 becuase는 XML 생성자에이를 통과 할 때 또한 시도의 catch 블록 등으로 포장 URLLoaderDataFormat.TEXT 같은 다른 값을 시도, 확신 잘못된 데이터는 오류를 발생시킵니다.