dom4j读写XML文件

时间:2021-03-04 15:12:37

XML文件格式:

<?xml version="1.0" encoding="UTF-8"?>
<company>
<employee name="zhangsan" value="张三"/>
<employee name="lisi" value="李四"/>
<employee name="wangwu" value="王五"/>
</company>

dom4j读写方法:

/**
* 读取
*/
public static void read() {
try {
File xmlFile = new File("d://company.xml");
Document document = new SAXReader().read(xmlFile);
List<Element> elements = document.selectNodes("/company/employee");
for (Element element : elements) {
String name = element.attributeValue("name");
String value = element.attributeValue("value");
System.out.println(name + " = " + value);
}
} catch (Exception e) {
e.printStackTrace();
}
} /**
* 写入
*/
public static void write() {
FileOutputStream fileOutputStream = null;
XMLWriter xmlWriter = null;
try {
File xmlFile = new File("d://company.xml");
Document document = new SAXReader().read(xmlFile);
// 获取根节点
Element root = document.getRootElement();
// 动态添加 <employee name="xiaohong" value="小红"/>
Element employee = root.addElement("employee");
employee.addAttribute("name", "xiaohong");
employee.addAttribute("value", "小红");
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
outputFormat.setEncoding("UTF-8");
outputFormat.setIndent(true);
outputFormat.setIndent(" ");// tab格
outputFormat.setNewlines(true);// 换行
fileOutputStream = new FileOutputStream(xmlFile);
xmlWriter = new XMLWriter(fileOutputStream, outputFormat);
xmlWriter.write(document);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (xmlWriter != null) {
try {
xmlWriter.close();
} catch (IOException e) {
}
}
} }

写入后XML格式:

<?xml version="1.0" encoding="UTF-8"?>

<company>
<employee name="zhangsan" value="张三"/>
<employee name="lisi" value="李四"/>
<employee name="wangwu" value="王五"/>
<employee name="xiaohong" value="小红"/>
</company>

注:所需包 dom4j-1.6.1.jar、jaxen-1.1.1.jar