`
oywl2008
  • 浏览: 1052577 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

XML digester的详细讲解

 
阅读更多
	/**
	 *
	 * @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

 

http://www.codesky.net/article/200502/54795.html

分享到:
评论

相关推荐

    利用commons-digester解析xml

    在提供的博客链接中,作者可能详细讲解了如何使用 Digester 实现具体的XML解析案例,包括但不限于以下方面: - 如何配置 Digester 规则 - 如何处理嵌套元素和递归结构 - 如何处理命名空间(如果XML文档包含) - ...

    xml解析commons-digester的demo

    本示例将详细介绍如何使用Apache Commons Digester进行XML解析。 Apache Commons Digester的核心概念是规则(Rule),这些规则定义了XML元素与Java对象之间的映射关系。通过一系列规则,Digester能够自动地读取XML...

    利用digester来将xml转换为bean

    本篇将详细介绍如何利用Digester实现XML到Bean的转换。 首先,我们需要理解XML和Java Bean的基本概念。XML(eXtensible Markup Language)是一种用于标记数据的语言,它定义了数据结构和规则,便于数据交换。而Java...

    commons-digester

    由于无法直接访问该链接,我会基于一般的Apache Commons Digester使用场景和功能进行讲解。 Apache Commons Digester是一个强大的工具,主要用途是读取XML文档,并根据预定义的一系列规则触发对Java对象的操作。...

    digester(浅谈第一次使用)

    下面是对Digester相关知识点的详细解释: 1. **XML解析**:Digester使用SAX解析器处理XML文档,而不是DOM解析器,这意味着它在处理大型XML文件时内存效率更高。SAX解析器逐行读取XML,当遇到特定的元素时触发回调...

    digester 实例

    描述中提到的博客链接指向了Tristan-s在iteye上的一个博客文章,可能详细解释了一个或多个digester的使用案例。由于没有具体的描述内容,我们将基于digester的一般概念进行讨论。 Apache Commons Digester通过使用...

    XML与Java对象互相转化Demo(Eclipse)

    XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,它具有结构化、自解释性和可扩展性,常被用作应用程序之间交换数据的格式。在Java编程中,XML与Java对象的相互转化是常见的需求,特别是在...

    web.xml详解

    以下是关于`web.xml`的一些详细解释: 1. **文档声明**: - `&lt;?xml version="1.0" encoding="GB2312"?&gt;`: 这是XML文档的声明,指定了XML的版本和字符编码。这里的`GB2312`是简体中文编码,但在现代Web应用中,通常...

    xml与javabean的相互转换

    以下将详细解释这两种数据格式间的转换方法。 1. XML到JavaBean的转换: - 使用JAXB(Java Architecture for XML Binding):JAXB是Java平台的标准API,用于在Java对象和XML之间进行绑定。首先,你需要为JavaBean...

    Java XML读取信息到数据库

    在Java编程环境中,XML(eXtensible Markup Language)是一种常用的数据存储和交换格式,它具有结构化、自解释的特点,使得数据易于处理。当需要将XML文件中的数据导入到数据库时,通常需要通过编程实现这个过程。在...

    很好的操作xml文件的应用

    这篇博客可能深入浅出地讲解了如何利用Java有效地操作XML文件,无论是简单的读取还是复杂的修改,都是开发者需要掌握的重要技能。如果你对这个话题感兴趣,阅读这个博客和研究"XMLFile.java"的源码将能帮你进一步...

    web_xml中ActionServlet中的属性

    以下是对`web.xml`中`ActionServlet`属性的详细解释: 1. **config**: 此属性定义了Struts配置文件的位置。默认值是`config/${prefix}/WEB-INF/strutsconfig.xml`,其中`${prefix}`是应用模块的前缀。这个文件包含...

    ssh2常用的jar包解释

    以下是一些SSH2常用jar包的详细解释: 1. **commons-digester.jar**: 这个包提供了基于规则的XML文档解析能力,主要用途是将XML文件映射到Java对象。通过定义一系列规则,可以方便地将XML结构转换为Java对象,简化...

    commons-digester-2.1.jar中文-英文对照文档.zip

    Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【***-sources.jar下载地址(官方地址+国内镜像地址).txt】...

    commons-digester-1.8.1.jar中文-英文对照文档.zip

    Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【***-sources.jar下载地址(官方地址+国内镜像地址).txt】...

    commons-digester3-3.2.jar中文-英文对照文档.zip

    Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【***-sources.jar下载地址(官方地址+国内镜像地址).txt】...

    java开发常用的jar包的作用解释.docx

    以下是一些常用JAR包及其作用的详细解释: 1. **commons-io.jar**: Apache Commons IO库提供了许多在Java标准库中未涵盖的IO操作功能。例如,它提供了文件过滤器、实用流和读写器,以及一些静态方法,用于简化常见...

    《深入浅出struts》 源代码

    2. **Digester.pdf**:Digester是Apache Commons项目中的一个库,它允许开发者通过XML配置来实例化和配置Java对象。在Struts中,Digester经常用于解析配置文件,如struts-config.xml,以创建和配置Action、Form Bean...

    spring mvc 整合ireport

    以下是对整合过程的详细讲解: 1. **iReport介绍** iReport是一款开源的报表设计工具,基于JasperReports库,支持多种数据源和多种报表样式,包括表格、图表、文本等。通过它,开发者可以创建XML格式的JRXML文件,...

Global site tag (gtag.js) - Google Analytics