Java 操作resources下xml文件

框架: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>

  

原文地址:https://www.cnblogs.com/mxh-java/p/13724606.html