Digester 读取xml的例子

类别:Java 点击:0 评论:0 推荐:

参考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());
   }
  }
    
   }
   
 
}

本文地址:http://com.8s8s.com/it/it11009.htm