java xml 파싱 SAX방식 api연계 xml parsing SAX DOM JDOM
[SPEC]
전자정부프레임워크 3.6
자바 8
톰캣 7
OpenAPI 로 제공되는 xml 데이터를 파싱 하는 방법을 알아보겠습니다.
JDOM이라는 라이브러리를 활용합니다.
JDOM 다운로드는 아래의 Link를 참고하세요.
Link : JDOM 다운로드
다운로드 후 압축을 풀면 위와 같은 폴더가 생성됩니다.
idom-2.0.6.jar 파일을 프로젝트에 import 해주시면 됩니다.
라이브러리를 추가하는 방법은 아래의 Link를 참고하세요.(단순히 jar를 add 해주셔도 됩니다.
Link : 이클립스 라이브러리 생성 방법 How to make library in eclipse
파싱할 xml의 구조는 아래와 같습니다.
<result> 태그가 있고 그 내의 자식으로
<record>
<data1>데이터1</data1>
<data2>데이터2</data2>
<data3>데이터3</data3>
<data4>데이터4</data4>
<data5>데이터5</data5>
</record>
태그가 반복되는 구조입니다.
소스는 아래와 같습니다.
String baseUrl = "http://aljjabaegi.tistory.com?key=";
String key = "API키";
try {
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(new java.net.URL(baseUrl+key));
Element root = doc.getRootElement(); //result
List<Element> list = root.getChildren("record");
List<InciVO> inciList = new ArrayList<InciVO>();
for(int i=0;i<list.size(); i++){
InciVO inciData = new InciVO();
Element inci = list.get(i);
inciData.setData1(inci.getChildText("data1"));
inciData.setData2(inci.getChildText("data2"));
inciData.setData3(inci.getChildText("data3"));
inciData.setData4(inci.getChildText("data4"));
inciData.setData5(inci.getChildText("data5"));
inciList.add(inciData);
}
} catch (Exception e) {
e.printStackTrace();
}
구조와 소스를 비교해 보시면 그리 어렵지 않으실겁니다.
SAXBuilder 를 생성한후 build를 통해 URL로 부터 xml 데이터를 받아옵니다.
rootElement는 <result> 태그가 될것이고,
그 rootElement에 record자식 element를 받아 리스트 만큼 반복 하여 VO에 저장하는 방식 입니다.
xml을 파싱하는 많은 방법들이 있지만 이 방식이 가장 간단하고 직관적인거 같네요.
'Programing > JAVA' 카테고리의 다른 글
자바 파일 다운로드 소스, 한글인코딩, 브라우져 문제 해결 (0) | 2017.11.20 |
---|---|
JAVA COBR 파싱 CBOR이란 Concise Binary Object Representation (0) | 2017.11.02 |
크롬 리디렉션한 횟수가 너무 많습니다. ERR_TOO_MANY_REDIRECTS 해결방법 (0) | 2017.09.14 |
이클립스 기존 프로젝트 import 시 프로젝트명 변경 (0) | 2016.12.29 |
java 자바 byte 형변환 함수 정리 (0) | 2016.12.23 |
댓글