package com.javaranch.newsletter.aug03.digester; import java.io.*; import java.util.*; import org.apache.commons.digester.*; public class ReviewDigester { private static final String REVIEWS_XML = "reviews.xml"; public ReviewDigester() { } public static void main(String[] args) { try { Digester digester = new Digester(); digester.setValidating(false); digester.addObjectCreate("books", Books.class); digester.addObjectCreate("books/book", Book.class); digester.addBeanPropertySetter("books/book/title"); digester.addObjectCreate("books/book/edition", Edition.class); digester.addSetProperties("books/book/edition", "number", "number"); digester.addBeanPropertySetter("books/book/edition/isbn"); digester.addObjectCreate("books/book/edition/author", Author.class); digester.addBeanPropertySetter("books/book/edition/author/lastName"); digester.addBeanPropertySetter("books/book/edition/author/firstName"); digester.addSetNext("books/book/edition/author", "addAuthor"); digester.addObjectCreate("books/book/edition/review", Review.class); digester.addBeanPropertySetter("books/book/edition/review/rating"); digester.addBeanPropertySetter("books/book/edition/review/content"); digester.addBeanPropertySetter("books/book/edition/review/reviewer"); digester.addBeanPropertySetter("books/book/edition/review/reviewDate/month"); digester.addBeanPropertySetter("books/book/edition/review/reviewDate/year"); digester.addSetNext("books/book/edition/review", "addReview"); digester.addSetNext("books/book/edition", "addEdition"); digester.addSetNext("books/book", "addBook"); File input = new File(REVIEWS_XML); Books books = (Books)digester.parse(input); System.out.print(books.toString()); } catch (Exception ex) { ex.printStackTrace(); } } }