dom4j是一个Java的XML API,是jdom的升级,用来读写XML文件。
引入dom4j-2.1.1.jar包,并buildpath。
注意:使用DOM4J时,所有接口/类(Document、Element)等全部来源于org.dom4j包,使用DOM4J只能一层一层往下找。
操作参考网址:https://dom4j.github.io/
案例一:查询所有联系人信息
@Test
public void test() throws Exception {
// 获取文档对象
SAXReader reader = new SAXReader();
Document document = reader.read(f);
// 获取根元素
Element root = document.getRootElement();
// 获取根元素下所有linkman元素
List<Element> linkmanElList = root.elements("linkman");
for (Element linkmanEl : linkmanElList) {
// 获取每一个linkman元素的name子元素的文本内容
//Element nameEl = linkmanEl.element("name");
//String name = nameEl.getText();
String id = linkmanEl.attributeValue("id");
String name = linkmanEl.elementText("name");
String email = linkmanEl.elementText("email");
String address = linkmanEl.elementText("address");
String group = linkmanEl.elementText("group");
}
}
案例二:新增一个联系人的信息
@Test
public void test1() throws Exception {
// 获取文档对象
SAXReader reader = new SAXReader();
Document document = reader.read(f);
// 获取根元素
Element root = document.getRootElement();
// 创建linkman元素,把linkman元素作为根元素的子元素
Element linkmanEl = root.addElement("linkman").addAttribute("id", "4");
// 创建name,email,address,group元素作为linkman的子元素,并设置文本内容
linkmanEl.addElement("name", "huahua");
linkmanEl.addElement("email", "huahua@123.com");
linkmanEl.addElement("address", "大连");
linkmanEl.addElement("group", "侦探");
// 同步操作
FileWriter out = new FileWriter(f);
document.write(out);
out.close();// 一定要记得关闭流
}