자바 XML 제어 라이브러리 JDOM : JAVA
반응형
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); %>
* 결과
반응형
'개발노트 > 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 |