Learning and Using Jakarta Digester

來源:互聯網
上載者:User

今天有空再度學習Struts1.3.9的源碼,感覺對org.apache.commons.digester.Digester的認識還很少,上網看了一篇文章講的比較好,特此轉載!

 

文章出處:http://www.onjava.com/pub/a/onjava/2002/10/23/digester.html?page=1

 

文章中的案例解釋:

 

//產生一個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() );

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.