dom4j方式寫入xml

  1. package com.dheaven.mip.item;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileWriter;  
  5. import java.io.IOException;  
  6. import java.io.Writer;  
  7. import java.util.Iterator;  
  8.   
  9. import org.dom4j.Document;  
  10. import org.dom4j.DocumentException;  
  11. import org.dom4j.DocumentHelper;  
  12. import org.dom4j.Element;  
  13. import org.dom4j.io.OutputFormat;  
  14. import org.dom4j.io.SAXReader;  
  15. import org.dom4j.io.XMLWriter;  
  16.   
  17. public class Dom4jDemo implements XmlDocument {  
  18.   
  19.   
  20.     /* (non-Javadoc)寫入xml 
  21.      * @see com.dheaven.mip.item.XmlDocument#createXml(java.lang.String) 
  22.      */  
  23.     public void createXml(String fileName) {   
  24.         //創建document對象  
  25.         Document document=DocumentHelper.createDocument();  
  26.         //爲document對象添加一級節點  
  27.         Element students=document.addElement("students");  
  28.         //在一級節點下添加二級節點  
  29.         Element student=students.addElement("student");  
  30.         Element name=student.addElement("name");  
  31.         name.setText("劉德華");  
  32.         Element sex=student.addElement("sex");  
  33.         sex.setText("男");  
  34.         try {  
  35.             /*直接通過write方法輸出,如下,此時輸出的xml文件中爲默認的UTF-8編碼,沒有格式,空格也沒有去除,實際上就是一個字符串;*/  
  36.             Writer fileWriter=new FileWriter(fileName);  
  37. //          XMLWriter xmlWriter=new XMLWriter(fileWriter);      
  38.                
  39.             /* 用XMLWriter類中的write方法,此時可以自行設置輸出格式,比如緊湊型、縮減型:此時輸出的xml文件中爲gb2312編碼,縮減型格式,但是多餘的空格已經被清除:*/  
  40.              OutputFormat format = OutputFormat.createPrettyPrint();//縮減型格式  
  41.              //OutputFormat format = OutputFormat.createCompactFormat();//緊湊型格式  
  42.              format.setEncoding("gb2312");//設置編碼  
  43.              //format.setTrimText(false);//設置text中是否要刪除其中多餘的空格  
  44.              XMLWriter xmlWriter=new XMLWriter(fileWriter,format);  
  45.                
  46.              /*如果想要對xml文件的輸出格式進行設置,就必須用XMLWriter類,但是我們又需要保留其中的空格,此時我們就需要對format進行設置,也就是加上一句format.setTrimText(false); 
  47. 這樣就可以既保持xml文件的輸出格式,也可以保留其中的空格;element中attribute中的值如果有空格的話在任何情況下是都不會去除空格的;*/  
  48.              xmlWriter.write(document);  
  49.              xmlWriter.close();   
  50.         } catch (IOException e) {  
  51.             e.printStackTrace();  
  52.         }    
  53.           
  54.     }   
  55.       
  56.   
  57.       
  58.     /* (non-Javadoc)解析xml文件 
  59.      * @see com.dheaven.mip.item.XmlDocument#parserXml(java.lang.String) 
  60.      */  
  61.     public void parserXml(String fileName) {   
  62.         File inputXml=new File(fileName);     
  63.         SAXReader saxReader = new SAXReader();     
  64.         try {     
  65.             Document document = saxReader.read(inputXml);     
  66.             Element employees=document.getRootElement();     
  67.             for(Iterator i = employees.elementIterator(); i.hasNext();){     
  68.                 Element employee = (Element) i.next();     
  69.                 for(Iterator j = employee.elementIterator(); j.hasNext();){     
  70.                     Element node=(Element) j.next();     
  71.                     System.out.println(node.getName()+":"+node.getText());     
  72.                 }     
  73.             }     
  74.         } catch (DocumentException e) {     
  75.             System.out.println(e.getMessage());     
  76.         }     
  77.     }     
  78. }   


TEST: 

  1. package com.dheaven.mip.item;  
  2.   
  3. public class xmltest {  
  4.   
  5.     public static void main(String[] args) {  
  6.         Dom4jDemo domxml=new Dom4jDemo();  
  7.         //寫入  
  8.         domxml.createXml("D:/domxml.xml");  
  9.         //解析  
  10.         domxml.parserXml("D:/domxml.xml");  
  11.     }  
  12. }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章