版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hekai7217/article/details/82387534
xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<students>
<student>
<name>雷军</name>
<age>50</age>
<sex>男</sex>
</student>
</students>
环境配置:
dom4j-2.1.0.jar
junit4
查询的方法:
/**
* 读取的操作
* @throws Exception
*/
@Test
public void read() throws Exception {
// 创建 xml解析器
SAXReader saxReader = new SAXReader();
//解析xml
Document doc = saxReader.read(new File("src/stu.xml"));
//获取根节点
Element root = doc.getRootElement();
//获取student 的节点
List<Element> stus = root.elements("student");
for (Element stu : stus) {
//拿到 节点
Element nameE = stu.element("name");
//获取节点的内容
String text = nameE.getText();
System.out.println(text);
System.out.println("******");
//直接通过 节点 获取 节点中的内容
String name = stu.elementText("name");
System.out.println(name);
}
}
删除方法:
/**
* 删除操作
*/
@Test
public void delete() throws Exception {
//获取工厂
SAXReader saxReader = new SAXReader();
//解析 xml
Document doc = saxReader.read(new File("src/stu.xml"));
//获取根节点
Element root = doc.getRootElement();
//获取第二个 student节点
Element stu = root.elements("student").get(1);
//移除操作
root.remove(stu);
//输出流的格式
OutputFormat format = OutputFormat.createPrettyPrint();
//设置编码
format.setEncoding("utf-8");
//doc 回写到 哪里
OutputStream os = new FileOutputStream(new File("src/stu.xml"));
//回写
XMLWriter xmlWriter = new XMLWriter(os,format);
try {
//操作
xmlWriter.write(doc);
System.out.println("删除成功");
} catch (IOException e) {
e.printStackTrace();
}
}
添加操作:
/**
* 添加操作
*/
@Test
public void insert() throws Exception {
//获取工厂
SAXReader saxReader = new SAXReader();
//解析 xml
Document doc = saxReader.read(new File("src/stu.xml"));
//获取根节点
Element root = doc.getRootElement();
//添加节点
Element stu = root.addElement("student");
Element name = stu.addElement("name");
name.setText("马化腾");
Element age = stu.addElement("age");
age.setText("50");
Element sex = stu.addElement("sex");
sex.setText("男");
//回写操作
OutputFormat opf=OutputFormat.createPrettyPrint();
opf.setEncoding("utf-8");
OutputStream os = new FileOutputStream(new File("src/stu.xml"));
XMLWriter writer = new XMLWriter(os,opf);
writer.write(doc);
System.out.println("添加成功 ...");
}
修改操作:
/**
* 修改操作
*/
@Test
public void update() throws Exception {
//获取工厂
SAXReader saxReader = new SAXReader();
//解析 xml
Document doc = saxReader.read(new File("src/stu.xml"));
//获取根节点
Element root = doc.getRootElement();
//获取第二个 student节点
Element stu = root.elements("student").get(1);
//拿到 节点 设置 值
stu.element("name").setText("董阿姨");
stu.element("age").setText("60");
stu.element("sex").setText("女");
//回写操作
OutputFormat opf=OutputFormat.createPrettyPrint();
opf.setEncoding("utf-8");
OutputStream os = new FileOutputStream(new File("src/stu.xml"));
XMLWriter writer = new XMLWriter(os,opf);
writer.write(doc);
System.out.println("修改成功 ...");
}