logo

copy
고객센터 > 이용안내
[ASP] Asp언어 xml 파싱에러처리 | 스크립트언어
관리자 11-06-17 20:50 18120
::::::::::::   Asp언어 xml 파싱에러처리  ::::::::::::::::::
 

WebDav라고 하는방식입니다. 간단히 설명만 드리면,
XMLHTTP 객체를 웹서버에 질의해서
결과를 XML문서로 리턴받는 방식입니다.
 
물론 XML문서는 속성값으로 파싱을 하셔서
가져와서 쓰면 되는데요, XMLDOM을 
쓰기가 쉽지 않죠..왜냐면 COM개체 및 자동화에 대해서 
이해가 필요하죠.
그나마 COM의 개념에 비하면 쉬운편이죠....
 
 보통은 DOM아니면  XLS(서식파일) 을 미리 정의해서
  
짤라서 쓰는데요...
  
 
아무튼 소스를 설명해 드리겠습니다.
 
 
Set http = CreateObject("Microsoft.XMLHTTP")
 
// xmlhttp.dll(Inprocess Com 개체 생성)
  
 
http.open "GET", “http://kt68freepass.magicn.com:8080/ComAuthX?SID=ktf&CTN=01637506xx&SSN=710304-xxxxxxx”, False
 
// 이런 SSN은 주민번호 같은데...710304-xxxxxxx 질문 수정하셈.. 
// 아그리고 주민번호를 Get방식으로 던지는 코딩은 보안에 
// 아주 위험합니다. POST로 던져야지욤...수정하세욤
// 님 핸펀번호같은디......-_-;;
//메소드 방식은  위의 URL에 Get방식으로 질의
 
  
http.send
// 질의 전송
 
 
 
If (http.Status = 200) Or (http.Status = 207) Then
 
// 전송 성공시 (에러는 401, 402,403, 404, 500이 보통 300이상)
  
 
Dim rspXML
Dim rspNode1, rspNode2, ok
 
Set rspXML = CreateObject("Microsoft.XMLDOM")
 
//XMLDOM객체 생성 (결과값 파싱을 위해)
 
 
 
If rspXML.loadXML(http.responseText) Then
 
    Set rspNode1 = rspXML.selectSingleNode("KTF-RESPONSE")
 
    result = rspNode1.getAttribute("ret")
 
  // XML의 속성태그 중에 의 값을 받아 result에 저장
 
 
 
Else // 실패 시
 
    result = "FXMLerr" //에러코드
End If
 
 
Set rspXML = Nothing  //객체 초기화
 
  
If left(result,1) = “F” Then  // 리턴된 값의 왼쪽에서 1번째 값이
                                     //   F이면 실패
 
// 인증에 실패 하였습니다.
 
 
Else                                      // 아니면 성인 인증 Ok!!
 
 
 
 if left(result,1) = ‘0’
   //  13(생일이 지난 경우 12)세 이하
 
 else if left(result,1) = ‘2’
  //  16(생일이 지난 경우 15)세 이하
 
 else if left(result,1) = ‘5’
 
//  20(생일이 지난 경우 19)세 이하        
 else if left(result,1) = ‘9’
// 사용가능 – 법인고객,
  21(생일이 지난 경우 20)세 이
 
End If
 
Else
 
 // 여기는 통신에러가 들어갑니다....  권한이니 인증, 파일없음 등의
 
// 에러상태를 여기서 처리해 주시면 됩니다. 상태 300이상값
 
// Ex) If (http.Status = 401)
 
          // 인증오류
 
        else If  (http.Status = 403)
 
          // 권한 오류
 
        else If  (http.Status = 404)
 
         // 파일오류
        else If  (http.Status = 500)
 
          // 서버오류
 
        else
 
          // 기타 오류처리
 
         End If
 
End If
 

결과값은 result에 저장이 됩니다. 이값이 어떤식으로 넘어오느냐는
 
처리를 잘해주셔야지요
  
l         출력데이터 : 결과코드(‘F’/’S’),결과(1바이트), 성별(1바이트-‘1’:남,’2’:녀)
   
이 값이 result안에 어떤식으로 저장되어 오는지
  
그걸 잘 짤라쓰셔야 합니다. 위에 소스에서 보니깐
  
맨 왼쪽이 T/F 그다음 left(result,2)가 1아니면 2가 넘어 오겠지요....
  
인증에 필요한 정보는 클라이언트에서 인증에 관한 처리는 서버에서 합니다.
  
그 결과만 클라이언트에서 내려줘서 그에 상응하는 처리만 하면 되는 소스입니다.
  
거의 스코프에 맞는 코딩이 되엇습니다.
  
소스정리와 문법은 맞추어 코딩하시면 되겠습니다
   

교회홈페이지제작
대용량동영상서비스
무료SMS솔루션
QT나눔
신앙도서
온라인성경
크리스찬
연합신문
성경타자
설교방송
CCM 방송
성경연구