`

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

阅读更多
org.apache.commons.digester软件包学习
在毕业设计(基于XML的电子商务平台)的时候,我参考了几种处理XML文档的组件,DOM、JDOM等,最好我选择了用JDOM(当时感觉自己用的技术比较先进)。但是在最近偶尔的机会见到了digester这个东西,感觉好奇所以今天学习了一下:org.apache.commons.digester软件包。以下网址有一个很不错的介绍:
[@more@]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:Digestercatalog.xml"为XML文档
         File input = new File( "F:Digestercatalog.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下面的很多组件都会用到它的公用组件)。


分享到:
评论
1 楼 javatozhang 2013-12-07  
感兴趣以后用到再研究!谢谢!

相关推荐

Global site tag (gtag.js) - Google Analytics