/** * 将xml数据根据属性配置文件转换为Incident事件信息 * @param data * @param propers2 * @return */ private List xml2Incident(String data, ProperObject ppobj) { List logList = new ArrayList(); Document doc = null; try { doc = DocumentHelper.parseText(data); } catch (DocumentException e1) { e1.printStackTrace(); } // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 List list = rootElt.elements(); for(Element ele : list){ IncidentLog log = new IncidentLog(); for (int i = 0; i < ppobj.getChildValueList().size(); i++) { ProperObject obj = ppobj.getChildValueList().get(i); Field f; try { f = IncidentLog.class.getDeclaredField(obj.getValue()); if(f!=null){ f.setAccessible(true); String value = ele.elementText(obj.getName()); if("".equals(obj.getName())){//如果未设定属性值,取默认值 value = obj.getDefaultValue(); } Class clazz = f.getType(); String type = clazz.getName(); if(type.equals("java.sql.Timestamp")){//对Timestap进行处理 f.set(log, new Timestamp(DateUtil.stringToDate(value).getTime())); }else if(type.equals("java.lang.String")){ if(obj.getChildValueList()!=null && obj.getChildValueList().size()>0){//匹配的数据字典值转换 for(ProperObject valueObj: obj.getChildValueList()){ if(value.equals(valueObj.getName())){ f.set(log, valueObj.getValue()); break; } } }else{ f.set(log, value); } } } } catch (NoSuchFieldException e) { //e.printStackTrace(); } catch (Exception e){ e.printStackTrace(); } } logList.add(log); } return logList; }