낭만 프로그래머
Java에서 Digester 를 사용하여 XML 파싱을 간단하게 사용하기 본문
Java에서는 기본적으로 XML을 파싱할 수 있는 코드를 제공합니다. 하지만 일일이 작업하는 것이 힘들기에 Digester 를 사용하여 간단히 XML을 파싱 해봅니다.
1. XML 파일을 생성합니다
<bookstore>
<name>우리서점</name>
<books>
<book>
<title>재미난 낭만프로그래머</title>
</book>
<book>
<title>재미없는 낭만프로그래머</title>
</book>
</books>
</bookstore>
2. 객체화 시킬 BookStore, Book 클래스를 작성합니다
/** Book Store **/
public class BookStore {
private String name;
private List<Book> bookList = new ArrayList<Book>();
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public List<Book> getBookList() {
this.bookList;
}
public void setBookList(List<Book> bookList) {
this.bookList = bookList;
}
public void addBook(Book book) {
this.bookList.add(book);
}
}
/** Book **/
public class Book {
private String title;
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
}
3. 실제 사용
- 클래스인 경우는 ObjectCreate, 속성인 경우에는 CallMethod를 사용하며 Book과 같이 리스트인 경우에는 SetNext를 해야 합니다. 참조할 메소드를 일일이 다 넣어 주네요 ^^*
String xml = "<bookstore>...</bookstore>";
StringReader sr = null;
try {
sr = new StringReader(xml);
Digester digester = new Digester();
digester.setValidating( false );
digester.addObjectCreate("bookstore", BookStore.class );
digester.addCallMethod("bookstore/name","setName",0);
digester.addObjectCreate("bookstore/books/book", Book.class);
digester.addCallMethod("rbookstore/books/book/title","setTitle",0);
digester.addSetNext( "bookstore/books/book", "addBook", "com.company.Book" );
BookStore bookstore = digester.parse(sr);
}
catch(Exception e) {
e.printStackTrace();
}
finally {
if(sr != null) {
sr.close();
}
}
'Java > Common' 카테고리의 다른 글
Java POI Excel을 이용하여 셀 안의 특정 문자열만 색깔 바꾸기 (0) | 2022.04.25 |
---|---|
Java POI 를 이용하여 Excel 파일 생성 및 쓰기 (0) | 2021.12.27 |
Ajax 와 Servlet 을 이용한 파일 업로드 (0) | 2020.04.29 |
Java에서 slf4j + Log4j 2 사용하기 (0) | 2020.04.06 |
Java 에서 Singleton(싱글톤) 사용하기 (0) | 2020.04.06 |