打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
org.apache.commons.digester软件包学习
org.apache.commons.digester软件包学习
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下面的很多组件都会用到它的公用组件)。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
用Digester简化XML文档处理
Apache Jakarta Commons 工具集简介
【新提醒】struts2 jar包说明(转)
JasperReport部分错误解决方案
Jakarta Commons:巧用类和组件
常用jar包之commons-digester使用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服