From a8484cec17431a69acac2abd1f2ebbc3778300bd Mon Sep 17 00:00:00 2001
From: lxw <810412026@qq.com>
Date: 星期三, 07 九月 2022 10:25:40 +0800
Subject: [PATCH] xml文件解析

---
 src/main/java/com/whyc/dto/XmlFileOpreate.java |   68 +++++++++++++++++++++++++--------
 1 files changed, 51 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/whyc/dto/XmlFileRead.java b/src/main/java/com/whyc/dto/XmlFileOpreate.java
similarity index 75%
rename from src/main/java/com/whyc/dto/XmlFileRead.java
rename to src/main/java/com/whyc/dto/XmlFileOpreate.java
index 1c6d7c3..4e679f9 100644
--- a/src/main/java/com/whyc/dto/XmlFileRead.java
+++ b/src/main/java/com/whyc/dto/XmlFileOpreate.java
@@ -5,25 +5,22 @@
 import org.dom4j.Document;
 import org.dom4j.DocumentException;
 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.*;
 import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
 
-public class XmlFileRead{
+public class XmlFileOpreate {
 
     //瑙f瀽xml鏂囦欢
-    public static void readConfigFromXml(String xmlFilePath)
+    public static FileInfo readXml(String xmlFilePath)
     {
         boolean res = true;
-        StationDto stationDto=new StationDto();
-        FileParam fparam=stationDto.getFparam();//鏂囦欢鍙傛暟
-        FileInfo fileInfo=stationDto.getFinfo();//鏂囦欢淇℃伅
-
-
+        FileInfo fileInfo=new FileInfo();//鏂囦欢淇℃伅
+        FileParam fparam=fileInfo.getFileParam();//鏂囦欢鍙傛暟
         try
         {
             SAXReader reader = new SAXReader();
@@ -103,7 +100,7 @@
             fparam.setEvaluationMode(Integer.parseInt(file_node.getTextTrim()));
 
             //鏌ヨ鍑哄綋鍓嶆渶澶х數姹犵粍id
-            System.out.println("groupName:"+fparam.getGroupNum()+"   battCount:"+fparam.getBattCount());
+            //System.out.println("groupName:"+fparam.getGroupNum()+"   battCount:"+fparam.getBattCount());
 
             //-----鏍规嵁groupNum鐨勫�艰鍙栨祴璇曟暟鎹�---------------------------//
             Iterator nodes = rootnode.elementIterator("node_group_num");
@@ -131,20 +128,57 @@
                 battInfo.setBattDataList(battDataList);
                 fileInfo.getBattInfoList().add(battInfo);
             }
-            stationDto.setFparam(fparam);
-            stationDto.setFinfo(fileInfo);
-           System.out.println(stationDto);
+            fileInfo.setFileParam(fparam);
         } catch (NullPointerException | NumberFormatException | DocumentException | ParseException e) {
             res = false;
             e.printStackTrace();
         } finally {
             if(false == res)
-                return ;
+                return null;
         }
+        return  fileInfo;
+    }
+
+    public static boolean writeXml(String xmlFilePath, Map<String,String> map){
+        boolean res=true;
+        try {
+            SAXReader reader = new SAXReader();
+            Document document = reader.read(new File(xmlFilePath));
+            //鑾峰彇鏍瑰厓绱�
+            Element rootElement = document.getRootElement();
+             //鑾峰彇鏍瑰厓绱犱笅鐨勬墍鏈夊瓙鍏冪礌
+            List<Element> es = rootElement.elements();
+            for (Element e:es) {
+                for (Map.Entry<String, String> entry:map.entrySet()) {
+                    String mapKey = entry.getKey();
+                    String mapValue = entry.getValue();
+                    if(e.getName().equals(mapKey)){
+                        e.setText(mapValue);
+                    }
+                }
+            }
+            OutputFormat format = OutputFormat.createPrettyPrint();
+            //format.setEncoding("UTF-8");//榛樿鐨勭紪鐮佸氨鏄疷TF-8
+            XMLWriter writer = new XMLWriter( new FileOutputStream(xmlFilePath), format );
+            writer.write( document );
+        } catch (DocumentException | FileNotFoundException | UnsupportedEncodingException e) {
+            res = false;
+            e.printStackTrace();
+        } catch (IOException e) {
+            res = false;
+            e.printStackTrace();
+        }
+        return res;
     }
 
     public static void main(String[] args) {
         String filePath="D://2022-06-14 16-02-34.xml";
-        XmlFileRead.readConfigFromXml(filePath);
+        String filePath1="D://test.xml";
+        FileInfo fileInfo=XmlFileOpreate.readXml(filePath);
+        System.out.println(fileInfo);
+        Map map=new HashMap();
+        map.put("test1","lxw");
+        map.put("test2","hw");
+        //XmlFileOpreate.writeXml(filePath1,map);
     }
 }

--
Gitblit v1.9.1