ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • XML 응답 값 파싱하는 방법 - How to parse XML response values
    Api 2024. 3. 28. 22:12

     

     

    1. Response에서 DOM 개체 가져오기

    • Dom.Document doc = resp.getBodyDocument();

    2. Dom에서 Root Element 가져오기

    • Dom.XmlNode rootNode = doc.getRootElement();

    3. RootElement에서 depth에 따라 값 가져오기

    • Dom.XmlNode result = rootNode.getChildElement(’result’, null);
    • Dom.xmlNode items = result.getChildElement('items',null);

    4. 주요 메서드

    • getBodyDocument()
    • getRootElement()
    • getChildElement()
    • getText()

    5. 구조 확인

     


    6. 값 추출하기

    • Dom.xmlNode.getText();
    public class XMLParserExample {
    
        public static void parseXML(String xmlContent) {
            // XML 문자열을 Dom.Document로 파싱
            Dom.Document doc = new Dom.Document();
            //응답 값에서 dom 가져오기
            doc = resp.getBodyDocument();
    
            // root 엘리먼트 가져오기
            Dom.XmlNode root = doc.getRootElement();
    
            // paramdata 엘리먼트에서 데이터 추출
            Dom.XmlNode paramdata = root.getChildElement('paramdata', null);
    
            String pyymm = paramdata.getChildElement('pyymm', null).getText();
            String totalcount = paramdata.getChildElement('totalcount', null).getText();
            String pagecount = paramdata.getChildElement('pagecount', null).getText();
            String pagenumber = paramdata.getChildElement('pagenumber', null).getText();
            String pyear = paramdata.getChildElement('pyear', null).getText();
            String pmonth = paramdata.getChildElement('pmonth', null).getText();
            String sort = paramdata.getChildElement('sort', null).getText();
            String order = paramdata.getChildElement('order', null).getText();
    
        }
    }

    7. 리스트에서 값 추출하기

    • getChildElement() 가 아닌 getChildElements() 활용
    • getChildElement()  는 Dom.XmlNode 반환
    • getChildElements() 는 Dom.XmlNodeList 반환
    // result 엘리먼트에서 items 가져오기
    Dom.XmlNode result = root.getChildElement('result', null);
    Dom.XmlNodeList items = result.getChildElements('items', null);
    
    // 각 item에 대한 정보 추출
    for (Dom.XmlNode item : items) {
        String title = item.getChildElement('title', null).getText();
        // 나머지 필요한 데이터들도 비슷한 방식으로 추출
    
        // 데이터를 가지고 무엇인가를 할 수 있습니다.
        System.debug('Title: ' + title);
    }

     

     

     

    반응형
Designed by Tistory.