JDOM 을 이용하여 XML 파일을 읽고 쓰기

2009/06/16 15:52
크리에이티브 커먼즈 라이선스
Creative Commons License


JDOM 은 XML 파일을 읽거나 XML 파일을 생성하는 작업을 위한 패키지이다.

http://www.jdom.org 에서 관련 파일을 다운로드 할 수 있다.

압축을 풀면 jdom.jar 파일을 찾을 수 있는데 이 파일을 JVM 클래스 패스에 추가한 후 관련 클래스들을 import 하여 사용한다.

 

 

1. XML 파일 읽기.

 

1-1. Document 클래스의 초기화

FileInputStream input = new FileInputStream( String XMLPath );

SAXBuilder builder = new SAXBuilder();

Document doc = builder.build( input );

실제 읽고자하는 XML 파일 경로를 저장한 path 스트링 변수로 XML 파일을 추상화 시킨 Document 객체를 초기화 한다.

getRootElement() 로 최상위 root 요소를 얻고 나면 관련 된 메소드들을 통해 하위 요소들과 속성 값에 접근 할 수 있다.

 

1-2. 주요 읽기 메소드들.

Attribute getAttribute( String name ) : 현재 요소의 name 속성을 추상화한 Attribute 클래스을 얻는다.

List getAttributes() : 현재 요소에 정의 된 모든 Attribute 클래스를 List 형태로 얻는다.

String getAttributeValue( String name ) : 현재 요소의 name 속성에 저장 된 값을 읽어 String 형태로 반환한다.

Element getChild( String name ) : 현재 요소에서 name 과 같은 하위 요소를 찾아 반환한다.

List getChildren() : 현재 요소 아래에 있는 모든 하위 요소를 List 형태로 반환한다.

List getChildren( String name ) : 현재 요소 아래에 있는 모든 name 요소들을 List 형태로 반환한다.

String getText() : 현재 요소에 정의 된 Text 를 읽어 반환한다.

String getTextTrim() : 현재 요소에 정의 된 Text 를 trim 시켜 반환한다.

 

 

2. XML 파일 만들기

 

2-1. Root 요소로 XML 형태의 데이터를 만든다.

Element root = new Element( "ROOTNAME" );

최상위 요소를 먼저 생성 한 후 만들고자 하는 XML 형태대로 하위 요소, 속성, TEXT를 붙여나간다.

Element addContent( Content child ) : 현재 요소 아래에 새로운 하위 요소를 추가한다.

Element setAttribute( Attribute attribute ) : 현재 요소에 속성을 설정한다.

Element setAttributes( List attributes ) : 현재 요소에 List 로 구성 된 속성들을 설정한다.

Element setText( String text ) : 현재 요소에 TEXT를 설정한다.

 

2-2. 완성 된 XML 형태의 데이터를 Document 객체에 저장한다.

Document doc = new Document( root );

XMLOutputter output = new XMLOutputter();
Format format = Format.getPrettyFormat();
output.setFormat( format );
FileOutputStream out = new FileOutputStream( String NEW_XMLPATH );

OutputStreamWriter writer = new OutputStreamWriter( out, "CHAR_SET" );

output.output( doc, writer );

저작자 표시 비영리 동일 조건 변경 허락

Trackback

Trackback Address :: http://ktrain.tistory.com/trackback/46 관련글 쓰기

Comments

What's on your mind?

댓글 입력 폼