lxw
2022-09-07 a8484cec17431a69acac2abd1f2ebbc3778300bd
xml文件解析
1个文件已删除
1 文件已重命名
2个文件已修改
110 ■■■■■ 已修改文件
src/main/java/com/whyc/dto/StationDto.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/XmlFileOpreate.java 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/FileInfo.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/StationInfo.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/StationDto.java
File was deleted
src/main/java/com/whyc/dto/XmlFileOpreate.java
File was renamed from src/main/java/com/whyc/dto/XmlFileRead.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 {
    //解析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");//默认的编码就是UTF-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);
    }
}
src/main/java/com/whyc/pojo/FileInfo.java
@@ -22,7 +22,6 @@
 * @since 2022-09-06
 */
@Data
@AllArgsConstructor
@TableName("tb_file_info")
@ApiModel(value="FileInfo对象", description="")
@ToString
@@ -46,10 +45,15 @@
    private String fileUrl;
    @TableField(exist = false)
    @ApiModelProperty(value = "文件参数集合")
    private FileParam fileParam;
    @TableField(exist = false)
    @ApiModelProperty(value = "电池组信息集合")
    private List<BattgroupInfo> battInfoList;
    public FileInfo() {
        fileParam=new FileParam();
        battInfoList=new ArrayList<>();
    }
}
src/main/java/com/whyc/pojo/StationInfo.java
@@ -1,6 +1,7 @@
package com.whyc.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
@@ -9,6 +10,8 @@
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
 * <p>
@@ -19,8 +22,6 @@
 * @since 2022-09-06
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("tb_statio_info")
@ApiModel(value="StatioInfo对象", description="")
@ToString
@@ -49,5 +50,11 @@
    @ApiModelProperty(value = "站点名称4")
    private String stationName4;
    @TableField(exist = false)
    @ApiModelProperty(value = "文件信息集合")
    private List<FileInfo> fileInfoList;
    public StationInfo() {
        fileInfoList=new ArrayList<>();
    }
}