框架:SpringBoot 2.1.15.RELEASE
JDK:1.8
依赖:
<!-- https://mvnrepository.com/artifact/org.dom4j/dom4j -->
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.1</version>
</dependency>
工具类:
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
/**
* 功能描述: xml工具类
* @Author: XinHai.Ma
* @Date: 2020/9/24 15:50
*/
public class XmlUtils {
private XmlUtils() {}
private static final String path = "src/main/resources/";
/**
* 功能描述: 读取xml文件
*
* @Param: [xmlPath]
* @Return: java.util.List<www.maxinhai.com.calculate.Formula>
* @Author: XinHai.Ma
* @Date: 2020/9/24 15:36
*/
public static List<Formula> ReadXml(String xmlPath) {
SAXReader reader = new SAXReader();
Document doc = null;
try {
doc = reader.read(new File(path + xmlPath));
} catch (DocumentException e) {
e.printStackTrace();
}
Element root = doc.getRootElement();
System.out.println("获取了根元素:" + root.getName());
List<Element> list = root.elements();
List<Formula> empList = new ArrayList<Formula>();
for (Element element : list) {
String name = element.element("key").getText();
String value = element.element("value").getText();
Formula formula = new Formula();
formula.setKey(name);
formula.setFormula(value);
empList.add(formula);
}
return empList;
}
/**
* 功能描述: 向xml写入数据
* @Param: [formulas]
* @Return: void
* @Author: XinHai.Ma
* @Date: 2020/9/24 15:50
*/
public static void writeXml(List<Formula> formulas) {
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("formulaList");
for (Formula formula : formulas) {
Element empElement = root.addElement("formula");
empElement.addElement("key").addText(formula.getKey());
empElement.addElement("value").addText(formula.getFormula());
empElement.addAttribute("id", formula.getId() + "");
}
try {
XMLWriter writer = new XMLWriter(OutputFormat.createPrettyPrint());
FileOutputStream fos = new FileOutputStream(path + "formula.xml");
writer.setOutputStream(fos);
writer.write(doc);
System.out.println("写出完毕!");
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<formulaList>
<formula id="1">
<key>1</key>
<value>1*2+4*3</value>
</formula>
<formula id="2">
<key>2</key>
<value>1+2+4*3</value>
</formula>
</formulaList>