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>
    

      

  • 相关阅读:
    ftpserver / FTP model:PORT/PASV/EPRT/EPSV
    windows 环境下搭建electricSearch+kibana
    springBoot2.x整合 logback实现日志记录
    springBoot使用aop添加处理rest请求 打印请求时间 和请求参数
    springCloud 使用feign复制请求头调用其他服务 content-length不一致导致调用失败
    mysql查询重复用户最新的一条数据
    【开源】 开源社区
    【数据库】 SQL 使用注意点
    【数据库】 SQL 常用语句
    【数据结构】 List 简单实现
  • 原文地址:https://www.cnblogs.com/mxh-java/p/13724606.html
Copyright © 2011-2022 走看看