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>
    

      

  • 相关阅读:
    开源软件架构总结之——Bash(readline做输入交互式,词法语法分析,进程交互)
    python——使用readline库实现tab自动补全
    声明式编程——抽象程度更高,关注是什么(what),而非如何做(how)
    splunk rest api search
    Elasticsearch单机下多实例配置
    splunk 通过rest http导入数据
    vnc xfce tab自动补全失效的解决方法
    止增笑耳星际前传
    [WPF]静态资源(StaticResource)和动态资源(DynamicResource)
    【 D3.js 入门系列 --- 3 】 做一个简单的图表!
  • 原文地址:https://www.cnblogs.com/mxh-java/p/13724606.html
Copyright © 2011-2022 走看看