org.apache.commons.digester软件包学习

来源:百度文库 编辑:神马文学网 时间:2024/07/07 11:30:57
lzhengj 原创  (参与分:13509,专家分:825)   发表:2005-10-09 17:16   版本:1.0   阅读:1379次
在毕业设计(基于XML的电子商务平台)的时候,我参考了几种处理XML文档的组件,DOM、JDOM等,最好我选择了用JDOM(当时感觉自己用的技术比较先进)。但是在最近偶尔的机会见到了digester这个东西,感觉好奇所以今天学习了一下:org.apache.commons.digester软件包。以下网址有一个很不错的介绍:
http://www.onjava.com/pub/a/onjava/2002/10/23/digester.html?page=1
它能方便地将XML文档所定义的元素转化为JAVA对象,其实它的用法有点象栈(当然内在的原理就是那个古老的东西,只是提供了更高一层的封装)。
//生成一个digester。主要需要引进commons-logging.jar、commons-collections.jar、commons-      beanutils.jar
Digester digester = new Digester();
//设置对XML文档资料是否进行DTD验证
digester.setValidating( false );
//当遇见 catalog 元素的时候,产生一个Catalog对象
digester.addObjectCreate( "catalog", Catalog.class );
//当遇见 catalog 元素下面的book的时候,产生一个Book对象
digester.addObjectCreate( "catalog/book", Book.class );
// 当遇见 catalog 元素下面的book的author时候,调用author属性的Set方法
digester.addBeanPropertySetter( "catalog/book/author", "author" );
digester.addBeanPropertySetter( "catalog/book/title", "title" );
//当再一次遇见 catalog 元素下面的book的时候,调用catalog类的addBook()方法
digester.addSetNext( "catalog/book", "addBook" );
digester.addObjectCreate( "catalog/magazine", Magazine.class );
digester.addBeanPropertySetter( "catalog/magazine/name", "name" );
digester.addObjectCreate( "catalog/magazine/article", Article.class );
//addSetProperties()是将对应元素的属性赋值。
digester.addSetProperties( "catalog/magazine/article", "page", "page" );
digester.addBeanPropertySetter( "catalog/magazine/article/headline" );
digester.addSetNext( "catalog/magazine/article", "addArticle" );
digester.addSetNext( "catalog/magazine", "addMagazine" );
//"F:\\Digester\\catalog.xml"为XML文档
File input = new File( "F:\\Digester\\catalog.xml" );
Catalog c = (Catalog)digester.parse( input );
System.out.println( c.toString() );
在测试以上网站的例子的时候引进:commons-digester.jar,另外请你引进:commons-logging.jar、commons-collections.jar、commons-beanutils.jar
这是因为在执行: Digester digester = new Digester();的时候配置了LOG(在apache下面的很多组件都会用到它的公用组件)。