java解析xml文件

1.xml文件

<?xml version="1.0" encoding = "UTF-8"?>

<suspectComponents>

  <suspectComponent  name ="log4j-api" versions="2.0.7"></suspectComponent>

  <suspectComponent  name ="log4j" versions="2.0.7"></suspectComponent>

  <suspectComponent  name ="log4-core" versions="2.0.7"></suspectComponent>

</suspectComponents>

2.建立对应entity

suspectComponents实体类

@Data

@ToString

@XStreamAlias("suspectComponents")

public class SuspectComponents{

  @XStreamImplicit(itemFieldName = "suspectComponent")

  private List<SuspectComponent> listSuspectComponent;

}

suspectComponent实体类

@Data

@ToString

@XStreamAlias("suspectComponent")

public class SuspectComponent{

  @XStreamAsAttribute

  @XStreamAlias("name")

  private String name;

 

  @XStreamAsAttribute

  @XStreamAlias("versions")

  private String versions;

 

  private String suspectComponent;

}

 

3.XMLUtil方法

public class XMLUtil{

  /**

  *将File类型XML转化为对象

  *filePath为XML文件的路径

  */

  public static SupectComponents ConverXmlFileToObject(String filePath){

    InputStreamReader reader = null;

    try{

      reader = new InputStreamReader(new FileInputStream(filePath),"UTF-8");

      XStream xStream = new XStream(new DomDriver("UTF-8",new XmlFriendlyNameCoder("-_","_")));

      Class<?>[] classes = new Class[]{SupectComponents .class};

      XStream.setupDefaultSecurity(xStream);

      xStream.allowTypes(classes);

      xStream.alias("supectComponents ",SupectComponents .class);

      xStream.autodetectAnnotations(true);

      SupectComponents  supectComponents = (SupectComponents)  xStream.fromXML(reader);

      return supectComponents;

    }catch(Exception e){

      e.printStackTrace();

      return null;

    }finally{

      if(rader != null){

        try{

          reader.close();

        }catch(IOException e){

          e.printStackTrace();

        }

      }

    }

  }

}

 

4.使用

private SupectComponents getXMLData(String path){

  SupectComponents s = XMLUtil.ConverXmlFileToObject(path);

  return s;

}

 

posted @ 2022-05-25 18:08  秃头小霸王  阅读(228)  评论(0)    收藏  举报