DOM4J创建XML文件和追加元素节点

在使用DOM4J时需要导入dom4j.jar包,然后使用其中的一些方法对XML文件进行操作。

首先我们创建一个XML文件Student.xml




  
    WH
    20
  

操作步骤

对已存在的XMl文件进行追加

1.创建SAXReader对象。

SAXReader reader=new SAXReader();

2.根据创建的SAXReader对象.read("文件路径")方法得到Document对象,读取XML文件。

Document read = reader.read(path);

3.根据Document对象.getRootElement()方法得到Element对象,并获取XML文件中的根节点。

Element root = read.getRootElement();

4.Element对象.addElement("节点名")创建节点

Element student = root.addElement("student");

5.Element对象.addAttribute("节点属性名",“属性值”)为节点增加属性

Element attribute = student.addAttribute("id", "1");

新建XML文件,添加元素

1.通过DocumentHelper.creatDocument()创建一个Document对象。

Document read = DocumentHelper.createDocument();

2.根据Document对象.addElement("节点名")创建一个根节点,返回Element对象

Element root=read.addElement("Students");

将创建的节点写入XML文件中

1.通过OutputFormat的静态方法createPrettyPrint()创建OutputFormat对象,并设置编码集

OutputFormat outputFormat=OutputFormat.createPrettyPrint();
outputFormat.setEncoding("UTF-8");

2.使用XMLWriter对象将创建的Document元素写入XML文件中

XMLWriter xmlWriter=new XMLWriter(new FileWriter(file),outputFormat);
xmlWriter.write(read);

具体实现

创建一个Test类对XML文件进行操作

package WriterXML;

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

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

public class WriterTest {
    public static void main(String[] args) throws Exception {

        //相对路径(项目的根目录)    我的XML文件是在WriterXML包下面
        writer("src//WriterXML//Students.xml","2","张伟","20");

    }
    //                         文件路径      id号      姓名        年龄
    public static void writer(String path,String id,String names,String ages) throws Exception {
        File file=new File(path);
        Document read=null;
        Element root=null;
        //如果文件存在  就获得它的根节点 
        if(file.exists()){
            SAXReader reader=new SAXReader();
            read = reader.read(path);
            //得到根节点
            root = read.getRootElement();
        }else {//如果文件不存在
            read = DocumentHelper.createDocument();
            //创建一个根节点
            root=read.addElement("Students");
        }
        //在根节点下创建一个新节点student节点
        Element student = root.addElement("student");
        Element attribute = student.addAttribute("id", id);

        //在student下创建节点  并给它们赋值
        Element name = student.addElement("name");
        name.setText(names);
        Element age = student.addElement("age");
        age.setText(ages);

        //        创建一种输出格式    每个节点元素可自动换行
        OutputFormat outputFormat=OutputFormat.createPrettyPrint();
        outputFormat.setEncoding("UTF-8");
        //可达到同样的效果
//        OutputFormat outputFormat=new OutputFormat("\t",true,"UTF-8");//自动换行 指定字符集
//        outputFormat.setTrimText(true);
        XMLWriter xmlWriter=new XMLWriter(new FileWriter(file),outputFormat);//写入XML文件的位置 以及指定的格式
        xmlWriter.write(read);//开始写入XML文件   写入Document对象
        xmlWriter.close();
        System.out.println("写入成功!");
    }
}

写入后:

DOM4J创建XML文件和追加元素节点_第1张图片

由于我的XML文件已存在,所以就是直接在后面追加元素。如果你的XML文件不存在,就会新建一个XML文件,并在文件中添加你所指定的信息。


       每日鸡汤:要振作起来,克服惰性和游离的心绪,投入到理性而自律的生活中去。终有一日,我们能够抵达!

Over!

你可能感兴趣的:(XML)