> Hello World !!!

     

@syaku

자바 XML 제어 라이브러리 JDOM : JAVA

written by Seok Kyun. Choi. 최석균

DOM : Document Object Model 약어이고, 다양한 플렛폼에 사용되고 있다. 자바스크립트에서 Ajax 를 다루어봤다면, 다들 사용해본거나 마찬가지이다. 문서의 내용을 객체화, 구조화하여 모델에 담는 다... 맞는 해석인지는 모르지만, 내가 느낀 DOM 의 역활이라고 생각한다.

2009/11/21 - [개발센터/JAVA] - 자바 XML 제어 라이브러리 XStream : JAVA 은 모델(빈즈)를 활용하여 노드를 생성하는 구조라서 자료를 모델로 돌려 받았을 때 사용하면 유용할 것 같다.

++ JDOM 공식 사이트 : http://jdom.org/

posted syaku blog


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);
%>

* 결과

http://syaku.tistory.com