자바 XML 제어 라이브러리 JDOM : JAVA
728x90
반응형

DOM : Document Object Model 약어이고, 다양한 플렛폼에 사용되고 있다. 자바스크립트에서 Ajax 를 다루어봤다면, 다들 사용해본거나 마찬가지이다. 문서의 내용을 객체화, 구조화하여 모델에 담는 다... 맞는 해석인지는 모르지만, 내가 느낀 DOM 의 역활이라고 생각한다.
2009/11/21 - [개발센터/JAVA] - 자바 XML 제어 라이브러리 XStream : JAVA 은 모델(빈즈)를 활용하여 노드를 생성하는 구조라서 자료를 모델로 돌려 받았을 때 사용하면 유용할 것 같다.
++ JDOM 공식 사이트 : http://jdom.org/
JDOM 을 이용하여 XML 문서를 출력해 보자.
* Xml.java
/**
* @class Xml
* @brief Xml Classes
*
* registered date 20100105
* programmed by Seok Kyun. Choi. 최석균
* http://syaku.tistory.com
*/
package org.syaku.util;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
public class Xml {
// 해쉬맵을 이용하여 문서 생성
public Document make(HashMap hm) throws Exception {
Element data = new Element("data");
Element element = new Element("item");
Set set = hm.keySet();
Object []items = set.toArray();
for(int i = 0; i < items.length; i++) {
String name = (String) items[i];
String value = (String) hm.get(name);
addElement(element,name,value);
}
data.addContent(element);
Document document = new Document(data);
return document;
}
// 엘리먼트 생성
public Element addElement(Element parent, String name, String value) {
Element element = new Element(name);
element.setText(value);
parent.addContent(element);
return parent;
}
// 애트리뷰트 생성
public void addAttribute(Element element, String name, String value){
Attribute attribute = new Attribute(name,value);
element.setAttribute(attribute);
}
}
* Xml 출력
<%@ page contentType="text/html; charset=euc-kr"%>
<%@ page import="java.util.*" %>
<%@ page import="org.syaku.util.*" %>
<%@ page import="org.jdom.*" %>
<%@ page import="org.jdom.output.*" %>
<%
HashMap hm = new HashMap();
hm.put("샤쿠","Syaku");
hm.put("Site","syaku.tistory.com");
hm.put("블로그","Blog");
Xml xml = new Xml();
Document document = (Document) xml.make(hm);
XMLOutputter outputter = new XMLOutputter();
Format format = Format.getPrettyFormat();
format.setEncoding("EUC-KR");
outputter.setFormat(format);
response.setContentType("application/xml");
outputter.output(document, response.getWriter());
// 시스템출력
// outputter.output(document, System.out);
%>
* 결과

728x90
반응형
'개발노트 > JAVA' 카테고리의 다른 글
| 자바 JXL 엑셀파일을 읽어 배열리턴 : JAVA EXCEL ArrayList (0) | 2010.09.08 |
|---|---|
| 날짜 시간 포맷 제어 자바 클래스 : JAVA DateUtils Date time (0) | 2010.04.27 |
| 자바 다양한 형변환. 그리고 아스키 코드 String char int : JAVA (2) | 2009.12.01 |
| 자바 XML 제어 라이브러리 XStream : JAVA (2) | 2009.11.21 |
