JAVA로 XML 생성

2007/06/13 18:01 / JAVA관련
매번 XML처리를 할때마다... 여기 저기서 찾아서 하기 귀찮아서 정리해야겠다...ㅋㅋ

우선 XML을 생성하는 방법은 여러가지가 있는데..

오늘은 돔트리를 이용하여 XML구조를 만들고
Transformer객체를 이용하여 XML로 변환하려고 한다.

우선  XML 구조를 만들기 위해서는 XML의 최상위 구조인
org.w3c.dom.Document객체를 만들어야한다.
Document 객체는 XML의 기본 구조라고 보면된다. 쉽게 얘기하면 그림을 그리기 위한 종이 정도로 보면 될까..??
Document doc = null;
DocumentBuilderFactory factory = null;
factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
doc = builder.newDocument();

Document객체를 만들었으면 그 아래 단계에 위치할 Element를 만들어야 한다.
Element를 만들기 위해서는 createElement라는 메서드를 사용한다.
만들어진 Element 를 최상위인 Document아래에 추가한다
Element prj_list = doc.createElement("prj_list");
doc.appendChild(prj_list);

위와같이 하게 되면
XML의 전체 구조위에 root element가 생성된다.
root element 아래에 하위 element를 추가하려면 동일한 방법으로 Element를 생성하여 상위 element아래에 추가하면된다.
Element prj_info = doc.createElement("prj_info");
prj_list.appendChild(prj_info);

Element에 값을 넣기 위해서는 Text객체를 생성하여 입력하면 된다.
Element element = doc.createElement("test_element");
Text textNode = doc.createTextNode("테스트 입니다");
prj_info.appendChild(textNode);

이런식으로 XML 구조를 만들었다면 실제로 XML파일로 저장하거나 XML을 화면에 표시하거나 하기 위해서는 XML문자열로 변환하는 과정이 필요하다.
TransformerFactory tr_factory = TransformerFactory.newInstance();
String xmlStr = "";    
try
{
    StringWriter sw = new StringWriter();
    Properties output = new Properties();
    output.setProperty(OutputKeys.INDENT, "yes");
    output.setProperty(OutputKeys.ENCODING, "EUC-KR");
    Transformer transformer = tr_factory.newTransformer();
    transformer.setOutputProperties(output);
    transformer.transform(new DOMSource(doc), new StreamResult(sw));
    xmlStr = sw.getBuffer ().toString ();
}
catch (Exception e)
{
    e.printStackTrace();
}

이렇게 만들어진 문자열을 파일로 저장하거나, 출력하면 된다.
2007/06/13 18:01 2007/06/13 18:01
보이수(유동주) 이 작성.
TAGS ,

Trackback URL : http://www.ishappy.net/tc/trackback/17


당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]