在使用DOM4J时需要导入dom4j.jar包,然后使用其中的一些方法对XML文件进行操作。
首先我们创建一个XML文件Student.xml
WH
20
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");
1.通过DocumentHelper.creatDocument()创建一个Document对象。
Document read = DocumentHelper.createDocument();
2.根据Document对象.addElement("节点名")创建一个根节点,返回Element对象
Element root=read.addElement("Students");
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!