IT/JAVASCRIPT

xml

news-wiki 2018. 12. 27. 22:20
728x90

ajax 를 이용해 xmlHttp.responseXML 를 리턴받고 json 으로 변경하기 위한 작업


1. xml2json.js

대부분 xml2json.js 를 이용해서 작업한다고 하는데 안된다... 프록시 페이지에서 공백이 있는 상태에서 넘겨줘서 그런지..


아니면 다른 이유가 있는지.. 찾지를 못하겠다 ㅜㅜ


2. saXMLUtils.js


http://ngweb.tistory.com/82 사이트에서 다른 1번에서 사용한 js 파일이 아닌 다른 파일을 이용해서 xml -> json 으로 변경


하는 방법이며, 잘된다 ㅋㅋㅋ 아싸 ㅋㅋㅋ


자세한 내용은 위 사이트 참조


alert(jsonObj.channel[0].title[0].Text);
alert(jsonObj.channel[0].item[0].mapx[0].Text);



========================================================================================


prototype.js 를 사용하여 responseXML 객체를 받아온 후 JSON 객체로 변환하여 아래와 같이 편리하게 사용할 수 있습니다.

일단 두서없이 포스팅 해 둡니다.

1. prototype.js Ajax 호출

 new Ajax.Request(
        url,  // URL
        {
            method: 'post',
            parameters: param,               // 파라미터
            onComplete: resultFunction,    // 결과를 받을 function 명 (eval(변수명) 가능함)
            onFailure : AjaxRequestError,  // 에러시에 실행될 function 명
            asynchronous: true
        }
    );



2. responseXML을 JSON 객체로 변환 예

/*
 * XML Response를 JSON Object로 리턴한다.
 */
function Xml2Json(originalRequest) {
 try {
  var xmlObj = originalRequest.responseXML;
  var jsonObj = XMLObjectifier.xmlToJSON(xmlObj);
  return jsonObj;
 } catch (e) {
  alert("Function XmlToJson error : " + e);
 }
}



3. xmlObjectifier import 후 사용 (http://www.terracoder.com/)

//Just include this library
<script language="javascript" src="saXMLUtils.js"></script>

//Using xml objectifier
<script language="javascript">
  
var root = XMLObjectifier.xmlToJSON(xml_dom_object); //Converts xml dom object to JSON
  var xml_doc = XMLObjectifier.textToXML(xml_string);   //Converts xml string to xml dom
</script>



4. 사용예제
<?xml version="1.0" encoding="utf-8" ?>
<sample>
    <aaa>
       <bbb>Hello</bbb>
    </aaa>
    <aaa>
       <bbb>Hi</bbb>
    </aaa>
</sample>

...

var jsonObj = XMLObjectifier.xmlToJSON(xmlObj);
jsonObj.aaa[0].bbb[0].Text;  // 결과 : Hello
jsonObj.aaa.length;  // 결과 : 2

for(var i=0; i<jsonObj.aaa.length; i++) {
    var value = jsonObj.aaa[i].bbb[0].Text;  // 결과 : (Loop) Hello, Hi
}

...
    

728x90

'IT > JAVASCRIPT' 카테고리의 다른 글

ajax - XML 변환기 오류  (0) 2018.12.27
ajax 로 데이터 가져오기 최종판  (0) 2018.12.27
[공유] JavaScript Getters and Setters  (0) 2018.12.27
객체 정보얻기  (0) 2018.12.27