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;
}

浙公网安备 33010602011771号