관리 메뉴

nkdk의 세상

XML파일로 불러오기 및 전송하기 본문

My Programing/Flex&AIR

XML파일로 불러오기 및 전송하기

nkdk 2008. 5. 26. 22:10

XML불러오기
XML이나 서버측 스크립트로부터 XML데이터를 호출해야 할 경우 사용한다.

   package
   {
    public class LoadExample extends Sprite
    {
     public function LoadXMLExample() {
      var loader:URLLoader = new URLLoader();
      loader.dataFormat = DataFormat.TEXT;
      loader.addEventListener(Event.COMPLETE, completeHandler);
      loader.load(new URLReqiest("example.xml"));      
     }
     private function completeHandler(event.Event):void{
      try
      {
       var example:XML = new XML(event.target.data);
       // 여기서 자료를 가져 왔기 때문에 e4x를 쓸수 있다.
       trace(example);            
      } catch(error:TypeError)
      {
       trace("변환 실패");
       trace(error.message);
      }
     }
    }
   }

이런식으로 하면 xml의 데이터를 불러오는 것이 가능하다.
자 그럼 불러오는 방식이 아닌 인터넷 상에서 xml파일을 불러 들어 하는 방식을 설명하겠다.
저 같은 경우는 struts를 이용하여 *.do 방식을 이용하여 xml 형식으로 뿌려주게 하는 방식으로 하여
사용하였습니다. 일단 보여지는 xml자체에서 값을 가져오기 때문에 연산 되는 것에 대해서는 보여지지 않습니다. 그 점을 이용하면 다음과 같이 설정 할 수 있습니다.

여기서 약간의 MVC개념을 넣도록 하겠습니다.
일단 select, insert, update, delete에 관련된 do를 만듭니다. 즉 jsp 파일이죠.. 들어가는 로직은 해당되는 리퀘스트를 받아서 추가, 삭제, 수정, 리스트를 뿌려주는게 목적이죠.

일단 as3.0 부분에서는
URLConfig.as라는 것을 만듭니다.
package
{
 public class URLConfig
 {
  private static var SERVICE:String = "http://localhost/flexapp/";
  private static var LIST:String = "list.php";
  private static var INSERT:String = "insert.php";
  private static var UPDATE:String = "update.php";
  private static var DELETE:String = "delete.php";
  private static var METHOD:String = "method.php";
 
  public static function get method():String
  {
   return METHOD;
  }

  public static function get memoList():String
  {
   return SERVICE+LIST;
  }
 
  public static function get memoInsert():String
  {
   return SERVICE+INSERT;
  }
 
  public static function get memoUpdate():String
  {
   return SERVICE+UPDATE;
  } 
  public static function get memoDelete():String
  {
   return SERVICE+DELETE;
  }
 }
}

다음과 같이 메모리 상에 올려 놓고 나중에 메모리에 있는 걸 불러 오기만 하면 된다.

httpservice를 통해 데이터를 관리하는 vo를 먼저 만들자 MemoVO.as
package
{
 public class MemoVO
 {
  public var idx:String;
  public var subject:String;
  public var content:String;
 
  public function toString():String
  {
   return "idx : " + idx + "\n"+"subject"+ subject+"\n"+"content :"+content;    
  }
 }
}
를 만든다. 이것을 이용해서 해당되는 jsp에서 그 값을 받아서 처리 한다.
즉 idx, subject, content의 값을 같이 넘겨준다.해당되는 값을 처리하는
HTTPServiceWithPHPMySQLExample.mxml을 추가한다.
해당 되는 mxml은 다음과 같다.

HTTPServiceWithPHPMySQLExample.mxml

작성은 내일로 쓰다가 시간이 너무 늦어서.. ^^
2부에서 보겠습니다.