67,513
社区成员
发帖
与我相关
我的任务
分享
package com.tongda.whl.digester;
import java.util.Vector;
import org.apache.commons.digester3.Digester;
public class DigestTest {
@SuppressWarnings("unchecked")
private Vector students;
@SuppressWarnings("unchecked")
public DigestTest() {
students = new Vector(5);
}
public void addStudent(Student student) {
students.add(student);
}
public String toString() {
return ((Student) students.get(0)).getName();
}
public void digest() {
// digest2.0支持jdk1.5,并且依赖 logging 1.1.1 和 beanutils 1.8.0
// 创建实例
Digester digester = new Digester();
// 将初始对象压入digester的stack
digester.push(this);
// 指明匹配模式和要创建的类
digester.addObjectCreate("students/student", Student.class);
// 设置对象属性
// digester
digester.addBeanPropertySetter("students/student/name");
digester.addBeanPropertySetter("students/student/course");
// 当移动到下一个标签中时的动作
digester.addSetNext("students/student", "addStudent");
try {
// 解析,xml文件放在classpath下
DigestTest ds = (DigestTest) digester.parse(getClass()
.getClassLoader().getResourceAsStream("students.xml"));
System.out.println(ds);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
DigestTest test = new DigestTest();
test.digest();
}
}
package com.tongda.whl.digester;
public class Student {
private String name;
private String course;
public void setName(String name) {
this.name = name;
}
public void setCourse(String course) {
this.course = course;
}
public String getName() {
return this.name;
}
public String getCourse() {
return this.course;
}
}
<students>
<student name="Tom" course="JSP"/>
</students>