参考http://search.csdn.net/Expert/topic/1369/1369055.xml?temp=.470791 写出两个读取例子 /***********/ /* * 创建日期 2005-3-8 * * TODO 要更改此生成的文件的模板,请转至 * 窗口 - 首选项 - Java - 代码样式 - 代码模板 */ package com.yourcompany.struts; /** * @author wangshangting * * TODO 要更改此生成的类型注释的模板,请转至 * 窗口 - 首选项 - Java - 代码样式 - 代码模板 */ import org.apache.commons.digester.*; import java.io.*; public class DigesterDriver { public static void main( String[] args ) { try { Digester digester = new Digester(); digester.setValidating( false ); digester.addObjectCreate( "catalog", Catalog.class ); digester.addObjectCreate( "catalog/book", Book.class ); digester.addBeanPropertySetter( "catalog/book/author", "author" ); digester.addBeanPropertySetter( "catalog/book/title", "title" ); digester.addSetNext( "catalog/book", "addBook" ); digester.addObjectCreate( "catalog/magazine", Magazine.class ); digester.addBeanPropertySetter( "catalog/magazine/name", "name" ); digester.addObjectCreate( "catalog/magazine/article", Article.class ); digester.addSetProperties( "catalog/magazine/article", "page", "page" ); digester.addBeanPropertySetter( "catalog/magazine/article/headline" ); digester.addSetNext( "catalog/magazine/article", "addArticle" ); digester.addSetNext( "catalog/magazine", "addMagazine" ); Catalog c = (Catalog)digester.parse( "WebRoot\\WEB-INF\\catalog.xml" ); System.out.println( c.toString() ); c.getTitle("Author 2"); c.getheadline("Mag Title 2","17"); } catch( Exception exc ) { exc.printStackTrace(); } } } /************/ package com.yourcompany.struts;
import java.util.Vector; public class Catalog { private Vector books; private Vector magazines;
public Catalog() { books = new Vector(); magazines = new Vector(); } public void addBook( Book rhs ) { books.addElement( rhs ); } public void addMagazine( Magazine rhs ) { magazines.addElement( rhs ); } public String toString() { String newline = System.getProperty( "line.separator" ); StringBuffer buf = new StringBuffer(); buf.append( "--- Books ---" ).append( newline ); for( int i=0; i<books.size(); i++ ){ buf.append( books.elementAt(i) ).append( newline ); } buf.append( "--- Magazines ---" ).append( newline ); for( int i=0; i<magazines.size(); i++ ){ buf.append( magazines.elementAt(i) ).append( newline ); } return buf.toString(); } /*通过author找title * @String author */ public void getTitle(String author) { Book b=null; for(int i=0;i<books.size();i++) { b=(Book)books.elementAt(i); if(b.getAuthor().equals(author)) { System.out.println(b.getTitle()); } } } /*通过Magazine Name,page找headline * @String MagaName,String page */ public void getheadline(String MagaName,String page) { Magazine m=null; for (int i=0;i<magazines.size();i++) { m=(Magazine)magazines.elementAt(i); if(MagaName.equals(m.getName())) m.getHeadline(page); } } } /****************/ package com.yourcompany.struts; import java.util.Vector; public class Magazine { private String name; private Vector articles; public Magazine() { articles = new Vector(); } public String getName() { return name; } public void setName( String rhs ) { name = rhs; } public void addArticle( Article a ) { articles.addElement( a ); } public String toString() { StringBuffer buf = new StringBuffer( "Magazine: Name='" + name + "' "); for( int i=0; i<articles.size(); i++ ){ buf.append( articles.elementAt(i).toString() ); } return buf.toString(); } /*通过page找headline * @String page */ public void getHeadline(String page) { Article a=null; for(int k=0;k<articles.size();k++) { a=(Article)articles.elementAt(k); if(a.getPage().equals(page)) { System.out.println(a.getHeadline()); } } } } 
|