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

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

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

<?xml version="1.0" encoding="UTF-8"?>

<Students>
  <student id="1">
    <name>WH</name>
    <age>20</age>
  </student>
</Students>

操作步骤

对已存在的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("写入成功!");
    }
}

写入后:


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


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

Over!

  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值