XML 문서를=>
DOM(메모리상의 tree구조화)
=>java
=======================================================================
*J DOM
http://www.jdom.org/
=>Binaries=>jdom1.0=>jdom-1.o.zip(window환경임)=>build
=>jdom.jar(어플리케이션)=>C:\Java\jdk1.5.0_06\jre\lib\ext(자바파일경로에 붙여넣기)
:C:\Tomcat5\common\lib(웹 어플리 케이션 사용시)
:C:\jdom-1.0\jdom-1.0\build\apidocs =>(api): interface가 아니라 class이다.
content==node와 같은 개념임
=======================================================================
**JDOM을 통한 xml 문서 생성하기**
import org.jdom.*;
import org.jdom.output.*;
import java.io.*;
class JDOMTest3{
public static void main(String[] args) {
Element products = new Element("Products");
Element computer = new Element("computer");
Element ram = new Element("RAM");
Element hdd = new Element("HDD");
Element vga = new Element("VGA");
computer.setAttribute("cpu","4G");
ram.setText("1G");
hdd.setText("200G");
vga.setText("geforce");
computer.addContent(ram);
computer.addContent(hdd);
computer.addContent(vga);
//root에 computer엘리먼트 추가
products.addContent("4강의강");
products.addContent(computer);
//Document추가 , root.getChildText,
Document doc = new Document(products);
XMLOutputter out = new XMLOutputter();
Format f = out.getFormat();
f.setEncoding("euc-kr");//한글처리
//개행과 들여쓰기를 함께 해야함
f.setLineSeparator("\n");//개행
f.setIndent(" ");//들여쓰기
f.setTextMode(Format.TextMode.TRIM);//Text에 의한 자동 줄바꿈해제
out.setFormat(f); //새로운 Format으로 설정
try{
// out.output(doc, System.out);
out.output(doc, new FileWriter("products.xml"));//파일 생성됨
}catch(Exception e){}
}
}
=======================================================================
=======================================================================
**이미 존재하고 있는 xml 문서를 읽어 오기
SAXBuiler생성자에
build 메서드를 이용해서 xml 문서를 이용할수 있다.
/
**앞으로 추세가 sax를 사용하지 않음,
Dom parser는 (xml 문서를 읽어들여 Tree구조로 만드는 작업, 느림),이미객체화됨
/
SAXBuiler물리적으로 존재하는 xml 을 읽어 들여서 사용,
처음 읽어 들이는 속도는 빠르나 특정 엘리먼트를 다시읽어 들일때 속도가 느림
****jdom특징
=>처음 읽어 들일때는 SAXBuiler를 사용하고 다음부터는 DOM을 사용
========================================================================
import org.jdom.*;
import org.jdom.output.*;
import java.io.*;
import java.util.*;
import org.jdom.input.*;
class JDOMTest4{
public static void main(String[] args) throws Exception{
//이미 물리적으로 존재하는 xml문서 로딩작업
//jdom은 읽어 들일때는 SAX를 사용하고
//Document로 전달할때는 DOM을 사용한다.
SAXBuilder sax= new SAXBuilder();
Document doc = sax.build("products.xml");
Element root = doc.getRootElement();
Element com = new Element("computer");
Element ram = new Element("RAM");
Element hdd = new Element("HDD");
Element vga = new Element("VGA");
com.setAttribute("cpu","4.G");
ram.setText("2G");
hdd.setText("350G");
vga.setText("Goforce34");
root.addContent(com);
com.addContent(ram);
com.addContent(hdd);
com.addContent(vga);
//Element child1 = root.getChild("computer");//하나밖에 없을경우
//루트 엘리먼트 내에 있는 자식들중 이름이 computer라는
//엘리먼트들만java.util.List구조로 받아낸다.
List<Element> ch = root.getChildren("computer");
for(Element e : ch){
System.out.println(e.getAttribute("cpu"));
}
XMLOutputter out = new XMLOutputter();
Format f = out.getFormat();
f.setEncoding("euc-kr");//한글처리
//개행과 들여쓰기를 함께 해야함
f.setLineSeparator("\n");//개행
f.setIndent(" ");//들여쓰기
f.setTextMode(Format.TextMode.TRIM);//Text에 의한 자동 줄바꿈해제
out.setFormat(f); //새로운 Format으로 설정
try{
// out.output(doc, System.out);
out.output(doc, new FileWriter("products.xml"));//파일 생성됨
}catch(Exception e){}
}
}
'Xml' 카테고리의 다른 글
[Xml] Ant - FTP 파일 업로드 하기 (0) | 2010.12.22 |
---|---|
[Xml] Filter를 사용하여 프로퍼티의 정보 활용 (0) | 2010.12.08 |
[Xml] Web.xml - Filter (0) | 2010.12.08 |
[Xml] 오라클 쿼리로 바로 xml생성 하기 (0) | 2010.12.07 |
[Xml] Web.xml - <load-on-startup>0</load_on-startup> (0) | 2010.09.03 |