需求:删除第一个p1元素下面的school元素
步骤:
- 得到document
- 得到根节点
- 得到第一个p1标签
- 得到第一个p1标签下的school元素
- 删除(使用p1删除school)
得到school的父节点
–第一种直接得到p1
–第二种使用getParent方法得到
删除操作:在p1上执行remove方法删除节点 - 回写xml
person.xml:
<?xml version="1.0" encoding="UTF-8"?>
<person>
<p1>
<name>zhangsan</name>
<school>qinghua</school>
<age>300</age>
<sex>nv</sex>
</p1>
<p1>
<name>lisi</name>
<age>25</age>
</p1>
</person>
TestDom4j.java:
import java.io.FileOutputStream;
import java.util.List;
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;
public class TestDom4j {
public static void main(String[] args) throws Exception {
delSchool();
}
private static void delSchool() throws Exception{
//创建解析器
SAXReader saxReader = new SAXReader();
//得到document
Document document = saxReader.read("src/person.xml");
//得到根节点
Element root = document.getRootElement();
//得到第一个p1
Element p1 = root.element("p1");
//获取p1下的age
Element school = p1.element("school");
//删除(使用p1删除school)
p1.remove(school);
//回写xml
OutputFormat format = OutputFormat.createPrettyPrint();//格式
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/person.xml"),format);
xmlWriter.write(document);
xmlWriter.close();
}
}