dom4j方式写入与解析XML

package com.dheaven.mip.item; 

import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.Writer; 
import java.util.Iterator; 

import org.dom4j.Document; 
import org.dom4j.DocumentException; 
import org.dom4j.DocumentHelper; 
import org.dom4j.Element; 
import org.dom4j.io.OutputFormat; 
import org.dom4j.io.SAXReader; 
import org.dom4j.io.XMLWriter; 

public class Dom4jDemo implements XmlDocument {  


    /* (non-Javadoc)写入xml * @see com.dheaven.mip.item.XmlDocument#createXml(java.lang.String) */  
    public void createXml(String fileName) {   
        //创建document对象  
        Document document=DocumentHelper.createDocument(); 
        //为document对象添加一级节点  
        Element students=document.addElement("students"); 
        //在一级节点下添加二级节点  
        Element student=students.addElement("student"); 
        Element name=student.addElement("name"); 
        name.setText("刘德华"); 
        Element sex=student.addElement("sex"); 
        sex.setText("男"); 
        try {  
            /*直接通过write方法输出,如下,此时输出的xml文件中为默认的UTF-8编码,没有格式,空格也没有去除,实际上就是一个字符串;*/  
            Writer fileWriter=new FileWriter(fileName); 
//          XMLWriter xmlWriter=new XMLWriter(fileWriter); 

            /* 用XMLWriter类中的write方法,此时可以自行设置输出格式,比如紧凑型、缩减型:此时输出的xml文件中为gb2312编码,缩减型格式,但是多余的空格已经被清除:*/  
             OutputFormat format = OutputFormat.createPrettyPrint();//缩减型格式 
             //OutputFormat format = OutputFormat.createCompactFormat();//紧凑型格式 
             format.setEncoding("gb2312");//设置编码 
             //format.setTrimText(false);//设置text中是否要删除其中多余的空格 
             XMLWriter xmlWriter=new XMLWriter(fileWriter,format); 

             /*如果想要对xml文件的输出格式进行设置,就必须用XMLWriter类,但是我们又需要保留其中的空格,此时我们就需要对format进行设置,也就是加上一句format.setTrimText(false); 这样就可以既保持xml文件的输出格式,也可以保留其中的空格;element中attribute中的值如果有空格的话在任何情况下是都不会去除空格的;*/  
             xmlWriter.write(document); 
             xmlWriter.close(); 
        } catch (IOException e) {  
            e.printStackTrace(); 
        }    

    }   



    /* (non-Javadoc)解析xml文件 * @see com.dheaven.mip.item.XmlDocument#parserXml(java.lang.String) */  
    public void parserXml(String fileName) {   
        File inputXml=new File(fileName); 
        SAXReader saxReader = new SAXReader(); 
        try {     
            Document document = saxReader.read(inputXml); 
            Element employees=document.getRootElement(); 
            for(Iterator i = employees.elementIterator(); i.hasNext();){ 
                Element employee = (Element) i.next(); 
                for(Iterator j = employee.elementIterator(); j.hasNext();){ 
                    Element node=(Element) j.next(); 
                    System.out.println(node.getName()+":"+node.getText()); 
                }     
            }     
        } catch (DocumentException e) {     
            System.out.println(e.getMessage()); 
        }     
    }     
}   

你可能感兴趣的:(xml,dom)