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