工具类
/**
* 将XML转为指定的POJO
* @param clazz
* @param xmlStr
* @return
* @throws Exception
*/
public static Object xmlStrToOject(Class> clazz, String xmlStr) throws Exception {
Object xmlObject = null;
Reader reader = null;
try{
JAXBContext context = JAXBContext.newInstance(clazz);
// XML 转为对象的接口
Unmarshaller unmarshaller = context.createUnmarshaller();
reader = new StringReader(xmlStr);
xmlObject = unmarshaller.unmarshal(reader);
if (null != reader) {
reader.close();
}
}catch (Exception e){e.printStackTrace();}
return xmlObject;
}
使用工具类
Vehicle vehicle = (Vehicle)XmlUtil.xmlStrToOject(Vehicle.class,xmlStr);
String str = vehicle.getCamID().get(0);
测试
public static void main(String[] args) {
String xmlStr = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
"\n" +
" \n" +
" 43030412341319100034 \n" +
" 湘X538D警 \n" +
" 0 \n" +
" 1 \n" +
" 23 \n" +
" 0 \n" +
" Z \n" +
" 1 \n" +
" 12080 \n" +
" KKBM43030412341319100034 \n" +
" 20190926172608099 \n" +
" 979799083 \n" +
" 0 \n" +
" \n" +
" 1 \n" +
" http://43.27.0.85:8086/43.27.0.91:7549/alarm$762143830_91532/2019/09/26/17/KKBM43030412341319100034/260891900.jpg?dev=XT8Q-CDS-1&fid=117508-29-13D2E8002D-155A0BA-63B56 \n" +
" 20190926172601791 \n" +
" 1 \n" +
" \n" +
" \n" +
" \n" +
" 2 \n" +
" http://43.27.0.85:8086/43.27.0.91:7549/alarm$762143830_91532/2019/09/26/17/KKBM43030412341319100034/260891901.jpg?dev=XT8Q-CDS-1&fid=117508-29-13D2E8002D-15BDCD8-5ECB4 \n" +
" 20190926172603929 \n" +
" 1 \n" +
" \n" +
" \n" +
" \n" +
" 3 \n" +
" http://43.27.0.85:8086/43.27.0.91:7549/alarm$762143830_91532/2019/09/26/17/KKBM43030412341319100034/260891902.jpg?dev=XT8Q-CDS-1&fid=117508-29-13D2E8002D-161CA54-4FF99 \n" +
" 20190926172608099 \n" +
" 1 \n" +
" \n" +
" \n" +
" \n" +
" 4 \n" +
" http://43.27.0.85:8086/43.27.0.91:7549/alarm$762143830_91532/2019/09/26/17/KKBM43030412341319100034/Character260891903.jpg?dev=XT8Q-CDS-1&fid=117508-29-13D2E8002D-166CAB5-78E \n" +
" 2 \n" +
" \n" +
" \n" +
" 4 \n" +
" 1 \n" +
" 1 \n" +
" 1 \n" +
" 98 \n" +
" 1 \n" +
" \n" +
" 0 \n" +
" \n" +
" GXCY \n" +
" 1 \n" +
" 78 \n" +
" 0 \n" +
" 3 \n" +
" \n" +
" \n" +
" 0 \n" +
" 70 \n" +
" 70 \n" +
" \n" +
" \n" +
" 0000\n" +
" 0800\n" +
" 0568\n" +
" 1558\n" +
" 0166\n" +
" 1298\n" +
" 0244\n" +
" 1318\n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" road \n" +
" \n" +
" \n" +
" \n" +
" 0 \n" +
" 高新路创业路-东向西-电警 \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
"";
System.out.println("xml数据="+xmlStr);
//转换xml
Vehicle vehicle = null;
try {
//vehicle = changXmlOfPassCar(xmlStr);
vehicle = (Vehicle)XmlUtil.xmlStrToOject(Vehicle.class,xmlStr);
log.info("号牌种类为:{},车辆类型为:{}", vehicle.getPlateType(), vehicle.getVehicleType());
} catch (Exception e) {
e.printStackTrace();
}
}
/**过车bean
* Created by mW6408 on 2019/4/10.
*/
@Data
@XmlAccessorType(value= XmlAccessType.FIELD)
@XmlRootElement(name="Vehicle")
public class Vehicle {
private List CamID; //卡口相机号
private String CarPlate;//号牌号码
private String PlateColor;//号牌颜色
private String VehicleSpeed;//车辆速度
private String PlateType;//号牌种类
private String IdentifyStatus;
private String VehicleColor;//车身颜色
private String VehicleType;//车辆类型
private String DriveStatus;//违法行为
private String TollgateID;//卡口编号
private String PassTime;//违法时间
private String RecordID;
private String DBRecordID;
private List Image;
private String PicNumber;//照片数量
private String LaneID;//车道编号
private String LaneType;
private String Direction;//方向编码
private String VehicleBrand;//车辆分类
private String PlateNumber;
private String VehicleBody;
private String VehicleLength;
private String DealTag;
private String PlaceCode;//违法地点
private String EquipmentType;
private String PlateConfidence;
private String RearPlateConfidence;
private String GlobalComposeFlag;
private String RedLightStartTime;
private String RedLightEndTime;
private String RedLightTime;
private String LimitedSpeed;
private String MarkedSpeed;
private String VideoURL;
private String VideoURL2;
private String VehicleTopX;
private String VehicleTopY;
private String VehicleBotX;
private String VehicleBotY;
private String LPRRectTopX;
private String LPRRectTopY;
private String LPRRectBotX;
private String LPRRectBotY;
private VehicleFace VehicleFace;
private String PlaceName;//违法地址
private String PoliceCode;
private String ReservedField1;
private String ReservedField2;
private String VehicleColorDept;
private String DressColor;
private String ApplicationType;
private String RearPlateColor;
private String RearPlateType;
private String RearVehiclePlateID;
private String PlateCoincide;
private String DirectionName;
private String ImageURL2;
private String ImageURL3;
private String ImageURL4;
private String TollgateName;
}
/**
* Created by liuzhou on 2019/9/29.
*/
@Data
@XmlAccessorType(value= XmlAccessType.FIELD)
@XmlRootElement(name = "Image")
public class Image {
private String ImageIndex;
private String ImageURL;
private String PassTime;
private String ImageType;
private String ImageData;
}
/**
* Created by liuzhou on 2019/9/29.
*/
@Data
@XmlAccessorType(value= XmlAccessType.FIELD)
public class VehicleFace {
private String VehicleBrand;
private String VehicleBrandType;
private String VehicleBrandYear;
private String VehicleBrandModel;
private String IsVehicleHead;
}
参考: