From 3dd3a893194e6d6756fffaf41171edbbcee6efd2 Mon Sep 17 00:00:00 2001 From: lxw <810412026@qq.com> Date: 星期一, 31 十月 2022 15:02:23 +0800 Subject: [PATCH] 解析文件加版本 --- src/main/java/com/whyc/dto/XmlFileOpreate.java | 160 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 153 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/whyc/dto/XmlFileOpreate.java b/src/main/java/com/whyc/dto/XmlFileOpreate.java index a56c56e..d3c9e79 100644 --- a/src/main/java/com/whyc/dto/XmlFileOpreate.java +++ b/src/main/java/com/whyc/dto/XmlFileOpreate.java @@ -15,10 +15,126 @@ import java.util.*; public class XmlFileOpreate { + //瑙f瀽FBR-6000NT鍩虹2.7 + public static FileInfo readFBR_6000NT_jc(String xmlFilePath){ + FileInfo fileInfo=new FileInfo();//鏂囦欢淇℃伅 + FileParam fparam=fileInfo.getFileParam();//鏂囦欢鍙傛暟 + boolean res = true; + try + { + SAXReader reader = new SAXReader(); + FileInputStream fiso=new FileInputStream(xmlFilePath); + Document document = reader.read(fiso); + Element rootnode = document.getRootElement(); - //瑙f瀽xml鏂囦欢 - public static FileInfo readXml(String xmlFilePath) - { + Element node;//鏍硅妭鐐� + Element file_node;//鏂囦欢鑺傜偣 + + //------------------------------------------------------------// + node = rootnode.element("TEST_TIME"); + String testTime=node.getTextTrim(); + testTime=testTime.replace("_"," "); + fparam.setTestTime(ActionUtil.sdfwithALL.parse(testTime)); + //------------------------------------------------------------// + node = rootnode.element("VERSION"); + fparam.setVersion(node.getTextTrim()); + //------------------------------------------------------------// + node = rootnode.element("BATT_PARAM"); + file_node=node.element("batt_group_name"); + fparam.setBattGroupName(file_node.getTextTrim()); + + file_node=node.element("batt_producer"); + if(file_node!=null){ + fparam.setBattProducer(file_node.getTextTrim()); + } + file_node=node.element("batt_cap"); + fparam.setBattCap(Float.parseFloat(file_node.getTextTrim())); + file_node=node.element("batt_count"); + fparam.setBattCount(Integer.parseInt(file_node.getTextTrim())); + + file_node=node.element("batt_vol"); + fparam.setBattVol(Float.parseFloat(file_node.getTextTrim())); + file_node=node.element("batt_vol_good"); + if(file_node!=null){ + fparam.setBattVolGood(Float.parseFloat(file_node.getTextTrim())); + } + file_node=node.element("batt_vol_bad"); + if(file_node!=null){ + fparam.setBattVolBad(Float.parseFloat(file_node.getTextTrim())); + } + + file_node=node.element("batt_res"); + fparam.setBattRes(Float.parseFloat(file_node.getTextTrim())); + file_node=node.element("batt_res_good"); + if(file_node!=null){ + fparam.setBattResGood(Float.parseFloat(file_node.getTextTrim())); + } + file_node=node.element("batt_res_bad"); + if(file_node!=null){ + fparam.setBattResBad(Float.parseFloat(file_node.getTextTrim())); + } + + file_node=node.element("batt_ser"); + fparam.setBattSer(Float.parseFloat(file_node.getTextTrim())); + file_node=node.element("batt_ser_good"); + if(file_node!=null){ + fparam.setBattSerGood(Float.parseFloat(file_node.getTextTrim())); + } + file_node=node.element("batt_ser_bad"); + if(file_node!=null){ + fparam.setBattSerBad(Float.parseFloat(file_node.getTextTrim())); + } + + file_node=node.element("concount_pb"); + fparam.setConcountPb(Integer.parseInt(file_node.getTextTrim())); + + file_node=node.element("conn_res"); + if(file_node!=null){ + fparam.setConnRes(Float.parseFloat(file_node.getTextTrim())); + } + file_node=node.element("conn_res_good"); + if(file_node!=null){ + fparam.setConnResGood(Float.parseFloat(file_node.getTextTrim())); + } + file_node=node.element("conn_res_bad"); + if(file_node!=null){ + fparam.setConnResBad(Float.parseFloat(file_node.getTextTrim())); + } + //-----鏍规嵁groupNum鐨勫�艰鍙栨祴璇曟暟鎹�---------------------------// + Iterator nodes = rootnode.elementIterator("node_batt_num"); + while (nodes.hasNext()){ + node= (Element) nodes.next(); + BattgroupInfo battInfo=new BattgroupInfo(); + List<BattgroupData> battDataList=new ArrayList(); + BattgroupData battData=new BattgroupData(); + battData.setMonNum(Integer.parseInt(node.attributeValue("batt_num"))); + file_node=node.element("bv_1"); + battData.setBv(file_node.getTextTrim()); + file_node=node.element("br_1"); + battData.setBr(file_node.getTextTrim()); + file_node=node.element("bs_1"); + battData.setBs(file_node.getTextTrim()); + file_node=node.element("cr_1"); + battData.setCr(file_node.getTextTrim()); + battDataList.add(battData); + battInfo.setBattDataList(battDataList); + fileInfo.getBattInfoList().add(battInfo); + } + fileInfo.setFileParam(fparam); + fiso.close(); + } catch (NullPointerException | NumberFormatException | DocumentException | ParseException | FileNotFoundException e) { + res = false; + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + if(false == res) + return null; + } + return fileInfo; + } + //瑙f瀽FBR-6000NT甯︽爣璁扮増鏈�2.0 + public static FileInfo readFBR_6000NT_bj(String xmlFilePath){ boolean res = true; FileInfo fileInfo=new FileInfo();//鏂囦欢淇℃伅 FileParam fparam=fileInfo.getFileParam();//鏂囦欢鍙傛暟 @@ -36,6 +152,7 @@ //------------------------------------------------------------// node = rootnode.element("TEST_TIME"); String testTime=node.getTextTrim(); + testTime.replace("_"," "); fparam.setTestTime(ActionUtil.sdfwithALL.parse(testTime)); //------------------------------------------------------------// node = rootnode.element("VERSION"); @@ -144,6 +261,35 @@ } return fileInfo; } + //瑙f瀽xml鏂囦欢 + public static FileInfo readXml(String xmlFilePath) + { + FileInfo fileInfo=new FileInfo(); + try + { + SAXReader reader = new SAXReader(); + FileInputStream fiso=new FileInputStream(xmlFilePath); + Document document = reader.read(fiso); + Element rootnode = document.getRootElement(); + + //------------------------------------------------------------// + Element node = rootnode.element("VERSION"); + if(node!=null){ + String version=node.getTextTrim(); + switch (version){ + case "V2.0": fileInfo=readFBR_6000NT_bj(xmlFilePath);break; + case "V2.7": fileInfo=readFBR_6000NT_jc(xmlFilePath);break; + default:break; + } + } + fiso.close(); + } catch (NullPointerException | NumberFormatException | DocumentException | FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return fileInfo; + } public static boolean writeXml( Map<String,String> map,String xmlFilePath){ boolean res=true; @@ -177,10 +323,10 @@ } public static void main(String[] args) { - String filePath="D://2022-06-14 16-02-34.xml"; + String filePath="D:\\fileTest\\FBR-5000CT -鍘熸暟鎹�20221031\\\\2022-10-31_09-14-48.xml"; Map map=new HashMap() ; - //FileInfo fileInfo=XmlFileOpreate.readXml(filePath); - //System.out.println(fileInfo); + FileInfo fileInfo=XmlFileOpreate.readXml(filePath); + System.out.println(fileInfo); map.put("ChainRes", "50.0"); map.put("battTestNum","9"); map.put("battModel","SD-001"); @@ -211,6 +357,6 @@ map.put("batt_group_name","鍚庡鐢垫簮瀹�1#UPS绯荤粺lxw"); map.put("battStation","榧撴ゼ绔檒xw"); - XmlFileOpreate.writeXml(map,filePath); + //XmlFileOpreate.writeXml(map,filePath); } } -- Gitblit v1.9.1