需求:修改第一个p1下的age元素的值为30
步骤:
- 得到document
- 得到根节点
- 得到第一个p1元素
- 得到第一个p1元素下的age元素
- 修改age的值为30
- 回写xml
person.xml:
<?xml version="1.0" encoding="UTF-8"?>
<person>
<p1>
<name>zhangsan</name>
<school>qinghua</school>
<age>20</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 {
modifyAge();
}
private static void modifyAge() 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 age = p1.element("age");
//修改age的值
age.setText("30");
//回写xml
OutputFormat format = OutputFormat.createPrettyPrint();//格式
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/person.xml"),format);
xmlWriter.write(document);
xmlWriter.close();
}
}