/** * * @param args * * @author William * @throws SAXException * @throws IOException * @date Aug 8, 2013 */ public static void main(String[] args) throws IOException, SAXException { Digester digester = new Digester(); digester.setNamespaceAware(false); digester.setValidating(false); digester.addObjectCreate("school", com.test.School.class); digester.addSetProperties("school"); digester.addObjectCreate("school/teacher", com.test.Teacher.class); digester.addSetProperties("school/teacher"); digester.addSetNext("school/teacher", "addTeacher"); digester.addObjectCreate("school/teacher/students/student", com.test.Student.class); digester.addSetProperties("school/teacher/students/student"); digester.addSetNestedProperties("school/teacher/students/student"); digester.addSetNext("school/teacher/students/student/", "addStudent"); School s = (School) digester.parse(new File("D:\\Indigo\\SFA workspace\\Test\\src\\com\\test\\NewFile.xml")); //System.out.println(s); System.out.println(s.teachers.size()); for(int i=0;i<s.teachers.size();i++){ Teacher st=s.getTeachers().get(i); for(int j=0;j<st.students.size();j++){ Student std=st.students.get(j); System.out.println(st.getName()+","+std.getAge()+","+std.getHobby()+","+std.getId()); } //System.out.println(st.students.size()); } // /*通过author找title // * @String author // */ // public void getTitle(String author) // { // Book b=null; // for(int i=0;i<books.size();i++) // { // b=(Book)books.elementAt(i); // if(b.getAuthor().equals(author)) // { // System.out.println(b.getTitle()); // } // // } // } // // /*通过Magazine Name,page找headline // * @String MagaName,String page // */ // public void getheadline(String MagaName,String page) // { // Magazine m=null; // for (int i=0;i<magazines.size();i++) // { // // m=(Magazine)magazines.elementAt(i); // if(MagaName.equals(m.getName())) // m.getHeadline(page); // // } // } } }
<?xml version="1.0" encoding="UTF-8"?> <school name="school number1" location="SZ"> <teacher id="001" name="zhangshan"> <students> <student name="stu1"> <hobby>basketball</hobby> <id>111</id> <age>23</age> </student> <student name="stu2"> <hobby>football</hobby> <id>222</id> <age>24</age> </student> <student name="ggg"> <hobby>gggg</hobby> <id>333</id> <age>21</age> </student> </students> </teacher> <teacher id="002" name="lisi"> <students> <student name="_stu1"> <hobby>tennis</hobby> <id>dddddddddddddddddd</id> <age>25</age> </student> <student name="_stu2"> <hobby>badminton</hobby> <id>555</id> <age>26</age> </student> </students> </teacher> </school>
/** * * * @author William * @date Aug 8, 2013 * @version 1.0 */ public class School { public List<Teacher> getTeachers() { return teachers; } public void setTeachers(List<Teacher> teachers) { this.teachers = teachers; } public String name; public String location; List<Teacher> teachers=new ArrayList<Teacher>(); public String getName() { return name; } public void setName(String name) { this.name = name; } public String getLocation() { return location; } public void setLocation(String location) { this.location = location; } public void addTeacher(Teacher t){ teachers.add(t); } // @Override // public String toString() { // String s="School [name=" + name + ", location=" + location + "]"; // s+="\nhave "+teachers.size()+" teachers\n"; // for(Teacher t:teachers){ // s+=t.toString(); // s+="\n\t"; // for(Student ss:t.students){ // s+=ss; // s+="\n\t"; // } // s+="\n"; // } // return s; // } }
/** * * * @author William * @date Aug 8, 2013 * @version 1.0 */ public class Student { private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } private String name; private String hobby; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getHobby() { return hobby; } public void setHobby(String hobby) { this.hobby = hobby; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Student [name=" + name + ", hobby=" + hobby + ", age=" + age + "]"; } }
/** * * * @author William * @date Aug 8, 2013 * @version 1.0 */ public class Teacher { private int id; private String name; public List<Student> students=new ArrayList<Student>(); public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void addStudent(Student s){ students.add(s); } @Override public String toString() { return "Teacher [id=" + id + ", name=" + name + "]"; } }
commons-digester-1.6.jar
commons-collections-3.1.jar
commons-logging-1.0.4.jar
commons-beanutils-1.7.0.jar
http://blog.csdn.net/possibleonline/article/details/6956133
相关推荐
在提供的博客链接中,作者可能详细讲解了如何使用 Digester 实现具体的XML解析案例,包括但不限于以下方面: - 如何配置 Digester 规则 - 如何处理嵌套元素和递归结构 - 如何处理命名空间(如果XML文档包含) - ...
本示例将详细介绍如何使用Apache Commons Digester进行XML解析。 Apache Commons Digester的核心概念是规则(Rule),这些规则定义了XML元素与Java对象之间的映射关系。通过一系列规则,Digester能够自动地读取XML...
本篇将详细介绍如何利用Digester实现XML到Bean的转换。 首先,我们需要理解XML和Java Bean的基本概念。XML(eXtensible Markup Language)是一种用于标记数据的语言,它定义了数据结构和规则,便于数据交换。而Java...
由于无法直接访问该链接,我会基于一般的Apache Commons Digester使用场景和功能进行讲解。 Apache Commons Digester是一个强大的工具,主要用途是读取XML文档,并根据预定义的一系列规则触发对Java对象的操作。...
下面是对Digester相关知识点的详细解释: 1. **XML解析**:Digester使用SAX解析器处理XML文档,而不是DOM解析器,这意味着它在处理大型XML文件时内存效率更高。SAX解析器逐行读取XML,当遇到特定的元素时触发回调...
描述中提到的博客链接指向了Tristan-s在iteye上的一个博客文章,可能详细解释了一个或多个digester的使用案例。由于没有具体的描述内容,我们将基于digester的一般概念进行讨论。 Apache Commons Digester通过使用...
XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,它具有结构化、自解释性和可扩展性,常被用作应用程序之间交换数据的格式。在Java编程中,XML与Java对象的相互转化是常见的需求,特别是在...
以下是关于`web.xml`的一些详细解释: 1. **文档声明**: - `<?xml version="1.0" encoding="GB2312"?>`: 这是XML文档的声明,指定了XML的版本和字符编码。这里的`GB2312`是简体中文编码,但在现代Web应用中,通常...
以下将详细解释这两种数据格式间的转换方法。 1. XML到JavaBean的转换: - 使用JAXB(Java Architecture for XML Binding):JAXB是Java平台的标准API,用于在Java对象和XML之间进行绑定。首先,你需要为JavaBean...
在Java编程环境中,XML(eXtensible Markup Language)是一种常用的数据存储和交换格式,它具有结构化、自解释的特点,使得数据易于处理。当需要将XML文件中的数据导入到数据库时,通常需要通过编程实现这个过程。在...
这篇博客可能深入浅出地讲解了如何利用Java有效地操作XML文件,无论是简单的读取还是复杂的修改,都是开发者需要掌握的重要技能。如果你对这个话题感兴趣,阅读这个博客和研究"XMLFile.java"的源码将能帮你进一步...
以下是对`web.xml`中`ActionServlet`属性的详细解释: 1. **config**: 此属性定义了Struts配置文件的位置。默认值是`config/${prefix}/WEB-INF/strutsconfig.xml`,其中`${prefix}`是应用模块的前缀。这个文件包含...
以下是一些SSH2常用jar包的详细解释: 1. **commons-digester.jar**: 这个包提供了基于规则的XML文档解析能力,主要用途是将XML文件映射到Java对象。通过定义一系列规则,可以方便地将XML结构转换为Java对象,简化...
Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【***-sources.jar下载地址(官方地址+国内镜像地址).txt】...
Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【***-sources.jar下载地址(官方地址+国内镜像地址).txt】...
Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【***-sources.jar下载地址(官方地址+国内镜像地址).txt】...
以下是一些常用JAR包及其作用的详细解释: 1. **commons-io.jar**: Apache Commons IO库提供了许多在Java标准库中未涵盖的IO操作功能。例如,它提供了文件过滤器、实用流和读写器,以及一些静态方法,用于简化常见...
2. **Digester.pdf**:Digester是Apache Commons项目中的一个库,它允许开发者通过XML配置来实例化和配置Java对象。在Struts中,Digester经常用于解析配置文件,如struts-config.xml,以创建和配置Action、Form Bean...
以下是对整合过程的详细讲解: 1. **iReport介绍** iReport是一款开源的报表设计工具,基于JasperReports库,支持多种数据源和多种报表样式,包括表格、图表、文本等。通过它,开发者可以创建XML格式的JRXML文件,...