zoukankan      html  css  js  c++  java
  • 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>
    

      

  • 相关阅读:
    第八章 多线程编程
    Linked List Cycle II
    Swap Nodes in Pairs
    Container With Most Water
    Best Time to Buy and Sell Stock III
    Best Time to Buy and Sell Stock II
    Linked List Cycle
    4Sum
    3Sum
    Integer to Roman
  • 原文地址:https://www.cnblogs.com/mxh-java/p/13724606.html
Copyright © 2011-2022 走看看