用Jdom4j读和写xml

来源:互联网 发布:鹊桥淘宝客怎么设置 编辑:程序博客网 时间:2024/04/30 06:29
package org.demo.dom4j;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;


import org.dom4j.Attribute;
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;
import org.jdom.output.Format;

public class DemoDom4j {

    /**
     * @param args
     * @throws IOException
     * @throws DocumentException
     */
    public static void main(String[] args) throws IOException, DocumentException {
        //userDom4jWriterXml();
        userDom4jReaderXml();
    }

    public static void userDom4jReaderXml() throws DocumentException {
    
        SAXReader reader=new SAXReader();
        Document document=reader.read("dom4j.xml");
        Element rootElement=document.getRootElement();
        List<Element> es=rootElement.elements();
        for (Element e : es) {
                //得到该元素上的所有属性
                List<Attribute> as=e.attributes();
                for (Attribute a : as) {
                    System.out.println(a.getName()+"="+a.getValue());
                }
                //得到该元素下的所有子节点
                List<Element> childElement=e.elements();
            for (Element child : childElement) {
                
                System.out.println(child.getName()+"="+child.getText());
            }
            System.out.println("=====================================");
        }
        
    }

    public static List<Student>  initStudent(){
        List<Student> stuList=new ArrayList<Student>();
        for (int i = 1; i < 5; i++) {
            stuList.add(new Student("NO"+i, "JDom_"+i, "男", 20+i, "Jdom__"+i));
        }
        return stuList;
    }
    
    public static void userDom4jWriterXml() throws IOException {
        /**
         * 在Dom4j中 创建所有的元素都是通过Dom4j的一个辅助类来创建DocumentHelper
         * 第一种方式来创建文档的根元素
         *  //创建文档
            Document document = DocumentHelper.createDocument();
            //创建一个根元素
            Element rootElement=DocumentHelper.createElement("students");
            //将根元素添加到文档中
            document.setRootElement(rootElement);
            */    
        
          //第二种方式来创建文档和文档的根元素
            //创建根元素
            Element rootElement=DocumentHelper.createElement("students");
            //创建文档并以并创建根元素
            Document document=DocumentHelper.createDocument(rootElement);
            
            List<Student> stus=initStudent();
            for (Student s : stus) {
                //创建根元素下的子节点 <student>及添加属性
                Element student=rootElement.addElement("student").addAttribute("id", s.getId());
                //创建<student>下的子元素
                student.addElement("name").addText(s.getName());
                student.addElement("sex").addText(s.getSex());
                student.addElement("age").addText(s.getAge()+"");
                student.addElement("address").addText(s.getAddress());
            }
            
            
            
            XMLWriter writer=new XMLWriter(
                    new FileOutputStream(new File("dom4j.xml")),
                    new OutputFormat("    ",true)
                    );
            writer.write(document);
        
    }
    
    
    
}

===========================================实体类==============================================

package org.demo.dom4j;

import java.io.Serializable;

public class Student implements Serializable {
    private String id;
    private String name;
    private String sex;
    private int age;
    private String address;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    
    
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public Student() {
        // TODO Auto-generated constructor stub
    }
    
    public Student(String id, String name,String sex, int age, String address) {
        super();
        this.id = id;
        this.name = name;
        this.sex=sex;
        this.age = age;
        this.address = address;
    }
    
    
    

}