您的位置:首页 > 其它

dom4j方式写入xml

2015-10-08 14:04 344 查看
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());     

        }     

    }     

}   

TEST: 

package com.dheaven.mip.item;  

  

public class xmltest {  

  

    public static void main(String[] args) {  

        Dom4jDemo domxml=new Dom4jDemo();  

        //写入  

        domxml.createXml("D:/domxml.xml");  

        //解析  

        domxml.parserXml("D:/domxml.xml");  

    }  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dom4j xml