在毕业设计(基于XML的电子商务平台)的时候,我参考了几种处理XML文档的组件,DOM、JDOM等,最好我选择了用JDOM(当时感觉自己用的技术 比较先进)。但是在最近偶尔的机会见到了digester这个东西,感觉好奇所以今天学习了一下: org.apache.commons.digester软件包。以下网址有一个很不错的介绍: http://www./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下面的很多组件都会用到它的公用组件)。 |
|
来自: 小朋 > 《Java web开源技术》