随笔-6  评论-38  文章-40  trackbacks-0

 


// 创建xml
  import  java.io.File;
import  java.io.FileWriter;

import  org.dom4j.Document;
import  org.dom4j.DocumentHelper;
import  org.dom4j.Element;
import  org.dom4j.io.XMLWriter;

public   class  Creatxml  {

  
/**

     * 建立一个XML文档,文档名由输入属性决定

     * 
@param  filename 需建立的文件名

     * 
@return  返回操作结果, 0表失败, 1表成功

     
*/

public    static   void  main(String str[])
{
  createXMLFile(
" c:/aaaa " );
}

    
public   static   int  createXMLFile(String filename) {

       
/**  返回操作结果, 0表失败, 1表成功  */

       
int  returnValue  =   0 ;

       
/**  建立document对象  */

       Document document 
=  DocumentHelper.createDocument();

       
/**  建立XML文档的根books  */

       Element booksElement 
=  document.addElement( " books " );

       
/**  加入一行注释  */

       booksElement.addComment(
" This is a test for dom4j, holen, 2004.9.11 " );

       
/**  加入第一个book节点  */

       Element bookElement 
=  booksElement.addElement( " book " );

       
/**  加入show属性内容  */

       bookElement.addAttribute(
" show " , " yes " );

       
/**  加入title节点  */

       Element titleElement 
=  bookElement.addElement( " title " );

       
/**  为title设置内容  */

       titleElement.setText(
" Dom4j Tutorials " );

       

       
/**  类似的完成后两个book  */

       bookElement 
=  booksElement.addElement( " book " );

       bookElement.addAttribute(
" show " , " yes " );

       titleElement 
=  bookElement.addElement( " title " );

       titleElement.setText(
" Lucene Studing " );

       bookElement 
=  booksElement.addElement( " book " );

       bookElement.addAttribute(
" show " , " no " );

       titleElement 
=  bookElement.addElement( " title " );

       titleElement.setText(
" Lucene in Action " );

       

       
/**  加入owner节点  */

       Element ownerElement 
=  booksElement.addElement( " owner " );

       ownerElement.setText(
" O'Reilly " );

       

       
try {

           
/**  将document中的内容写入文件中  */

           XMLWriter writer 
=   new  XMLWriter( new  FileWriter( new  File(filename)));

           writer.write(document);

           writer.close();

           
/**  执行成功,需返回1  */

           returnValue 
=   1 ;

       }
catch (Exception ex) {

           ex.printStackTrace();

       }


              

       
return  returnValue;

    }



}



// 修改xml

---------------------------------------------------------------------

import  java.io.File;
import  java.io.FileWriter;
import  java.util.Iterator;
import  java.util.List;

import  org.dom4j.Attribute;
import  org.dom4j.Document;
import  org.dom4j.Element;
import  org.dom4j.io.SAXReader;
import  org.dom4j.io.XMLWriter;

public   class  UpdateXml  {

 
/**
  * 
@param  args
  
*/

 
public   static   void  main(String[] args)  {
  
//  TODO Auto-generated method stub
   ModiXMLFile( " c:/aaaa " , " c:/bbb.xml " );
 }

 
/**

     * 修改XML文件中内容,并另存为一个新文件

     * 重点掌握dom4j中如何添加节点,修改节点,删除节点

     * 
@param  filename 修改对象文件

     * 
@param  newfilename 修改后另存为该文件

     * 
@return  返回操作结果, 0表失败, 1表成功

     
*/


    
public   static   int  ModiXMLFile(String filename,String newfilename) {

       
int  returnValue  =   0 ;

       
try {

           SAXReader saxReader 
=   new  SAXReader(); 

           Document document 
=  saxReader.read( new  File(filename));

           
/**  修改内容之一: 如果book节点中show属性的内容为yes,则修改成no  */

           
/**  先用xpath查找对象  */

           List list 
=  document.selectNodes( " /books/book/@show "  ); 

           Iterator iter 
=  list.iterator();

           
while (iter.hasNext()) {

              Attribute attribute 
=  (Attribute)iter.next();

              
if (attribute.getValue().equals( " yes " )) {

                  attribute.setValue(
" no " );

              }
   

           }


           

           
/**

            * 修改内容之二: 把owner项内容改为Tshinghua

            * 并在owner节点中加入date节点,date节点的内容为2004-09-11,还为date节点添加一个属性type

            
*/


           list 
=  document.selectNodes( " /books/owner "  );

           iter 
=  list.iterator();

           
if (iter.hasNext()) {

              Element ownerElement 
=  (Element)iter.next();

              ownerElement.setText(
" Tshinghua " );

              Element dateElement 
=  ownerElement.addElement( " date " );

              dateElement.setText(
" 2004-09-11 " );

              dateElement.addAttribute(
" type " , " Gregorian calendar " );

           }


           

           
/**  修改内容之三: 若title内容为Dom4j Tutorials,则删除该节点  */

           list 
=  document.selectNodes( " /books/book " );

           iter 
=  list.iterator();

           
while (iter.hasNext()) {

              Element bookElement 
=  (Element)iter.next();

              Iterator iterator 
=  bookElement.elementIterator( " title " );

               
while (iterator.hasNext()) {

                  Element titleElement
= (Element)iterator.next();

                  
if (titleElement.getText().equals( " Dom4j Tutorials " )) {

                     bookElement.remove(titleElement);

                  }


              }


           }
          

           

           
try {

              
/**  将document中的内容写入文件中  */

              XMLWriter writer 
=   new  XMLWriter( new  FileWriter( new  File(newfilename)));

              writer.write(document);

              writer.close();

              
/**  执行成功,需返回1  */

              returnValue 
=   1 ;

           }
catch (Exception ex) {

              ex.printStackTrace();

           }


           

       }
catch (Exception ex) {

           ex.printStackTrace();

       }


       
return  returnValue;

    }



}

// 格式化xml

------------------------------------------------------------------------------------------------------------

import  java.io.File;
import  java.io.FileWriter;

import  org.dom4j.Document;
import  org.dom4j.io. * ;

public   class  OutXml  {

 
/**
  * 
@param  args
  
*/

 
public   static   void  main(String[] args)  {
  
//  TODO Auto-generated method stub
  formatXMLFile( " c:/bbb.xml " );
 }

 
/**

     * 格式化XML文档,并解决中文问题

     * 
@param  filename

     * 
@return

     
*/


    
public   static   int  formatXMLFile(String filename) {

       
int  returnValue  =   0 ;

       
try {

           SAXReader saxReader 
=   new  SAXReader(); 

           Document document 
=  saxReader.read( new  File(filename));

           XMLWriter writer 
=   null ;

           
/**  格式化输出,类型IE浏览一样  */

          OutputFormat format 
=  OutputFormat.createPrettyPrint();

           
/**  指定XML编码  */

           format.setEncoding(
" GBK " );

           writer
=   new  XMLWriter( new  FileWriter( new  File(filename)),format);

           writer.write(document);

           writer.close();      

           
/**  执行成功,需返回1  */

           returnValue 
=   1 ;     

       }
catch (Exception ex) {

           ex.printStackTrace();

       }


       
return  returnValue;

    }


}


posted on 2006-12-01 11:45 一手的小窝窝 阅读(1278) 评论(0)  编辑  收藏 所属分类: JAVA

只有注册用户登录后才能发表评论。


网站导航: