public class Academy { private Vector students; private Vector teachers; private String name; public Academy() { students = new Vector(); teachers = new Vector(); } public void addStudent(Student student) { students.addElement(student); } public void addTeacher(Teacher teacher) { teachers.addElement(teacher); } public Vector getStudents() { return students; } public void setStudents(Vector newStudents) { students = newStudents; } public Vector getTeachers() { return teachers; } public void setTeachers(Vector newTeachers) { teachers = newTeachers; } public String getName() { return name; } public void setName(String newName) { name = newName; } }
public class Student { private Vector courses; private String name; private String division; public Student() { courses = new Vector(); } public void addCourse(Course course) { courses.addElement(course); } public String getName() { return name; } public void setName(String newName) { name = newName; } public String getDivision() { return division; } public void setDivision(String newDivision) { division = newDivision; } public void setCourses(Vector courses) { this.courses = courses; } public Vector getCourses() { return courses; } }
public class Teacher { private String name; private Vector certifications; public Teacher() { certifications = new Vector(); } public void addCertification(String certification) { certifications.addElement(certification); } public String getName() { return name; } public void setName(String newName) { name = newName; } public void setCertifications(Vector certifications) { this.certifications = certifications; } public Vector getCertifications() { return certifications; } }
public class Course { private String id; private String name; public Course() { } public String getId() { return id; } public void setId(String newId) { id = newId; } public String getName() { return name; } public void setName(String newName) { name = newName; } }
<?xml version="1.0"?> <academy name="JAcademy" > <student name="JavaBoy" division="A"> <course> <id>C1</id> <name>JSP</name> </course> <course> <id>C2</id> <name>Servlets</name> </course> </student> <student name="JavaGirl" division="B"> <course> <id>C3</id> <name>EJB</name> </course> </student> <teacher name="JavaGuru"> <certification>SCJP</certification> <certification>SCWCD</certification> </teacher> <teacher name="JavaMaster"> <certification>OCP</certification> <certification>SCJP</certification> <certification>SCEA</certification> </teacher> </academy>
1. academyRules.xml <?xml version="1.0"?> <digester-rules> <pattern value="academy"> <object-create-rule classname="com.commonsbook.chap7.academy.Academy" /> <set-properties-rule /> <pattern value="student"> <object-create-rule classname="com.commonsbook.chap7.academy.Student" /> <set-properties-rule /> <pattern value="course"> <object-create-rule classname="com.commonsbook.chap7.academy.Course" /> <bean-property-setter-rule pattern="id"/> <bean-property-setter-rule pattern="name"/> <set-next-rule methodname="addCourse" /> </pattern> <set-next-rule methodname="addStudent" /> </pattern> <pattern value="teacher"> <object-create-rule classname="com.commonsbook.chap7.academy.Teacher" /> <set-properties-rule /> <call-method-rule pattern="certification" methodname="addCertification" paramcount="1" /> <call-param-rule pattern="certification" paramnumber="0"/> <set-next-rule methodname="addTeacher" /> </pattern> </pattern> </digester-rules>
public class DigestXMLJavaAcademy { public void digest(){ try { //Create Digester using rules defined in academyRules.xml Digester digester = DigesterLoader.createDigester( this.getClass().getClassLoader().getResource("academyRules.xml")); //Parse academy.xml using the Digester to get an instance of Academy Academy a = (Academy)digester.parse( this.getClass().getClassLoader().getResourceAsStream("academy.xml")); Vector vStud=a.getStudents(); Vector vTeach=a.getTeachers(); for (int i = 0; i < vStud.size(); i++) { System.out.println("Student>> "+PropertyUtils.describe(vStud.get(i))); } for (int i = 0; i < vTeach.size(); i++) { System.out.println("Teacher>> "+ PropertyUtils.describe(vTeach.get(i))); } } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { DigestXMLJavaAcademy xmlDigest= new DigestXMLJavaAcademy(); xmlDigest.digest(); } }
0票
开心
0票
板砖
0票
感动
0票
有用
0票
疑问
0票
难过
0票
无聊
0票
震惊
顶
踩