作者 朱兆平

已可以做到解析PFFM

@@ -1180,13 +1180,15 @@ public class XmlToMapDemo { @@ -1180,13 +1180,15 @@ public class XmlToMapDemo {
1180 String SEDR = (String) metamap.get("SNDR"); 1180 String SEDR = (String) metamap.get("SNDR");
1181 logger.info(SEDR); 1181 logger.info(SEDR);
1182 1182
1183 - List<Map> event = (List<Map>) map.get("ArrivalEvent"); 1183 + Map LogisticsTransportManifest = (Map) map.get("LogisticsTransportManifest");
  1184 + List<Map> event = (List<Map>) LogisticsTransportManifest.get("ArrivalEvent");
1184 for (Map everyEvent : event){ 1185 for (Map everyEvent : event){
1185 String ScheduledArrivalOccurrenceDateTime = (String) everyEvent.get("ScheduledArrivalOccurrenceDateTime"); 1186 String ScheduledArrivalOccurrenceDateTime = (String) everyEvent.get("ScheduledArrivalOccurrenceDateTime");
1186 String FirstArrivalCountryID = ((Map) everyEvent.get("OccurrenceArrivalLocation")).get("FirstArrivalCountryID").toString(); 1187 String FirstArrivalCountryID = ((Map) everyEvent.get("OccurrenceArrivalLocation")).get("FirstArrivalCountryID").toString();
1187 1188
1188 Object AssociatedTransportCargoList = everyEvent.get("AssociatedTransportCargo"); 1189 Object AssociatedTransportCargoList = everyEvent.get("AssociatedTransportCargo");
1189 - if (AssociatedTransportCargoList.getClass().equals("java.util.ArrayList")){ //这里是为了判断 只发一票装载的情况,实际上上面event节点也要这样判断返回的是LIST还是MAP 1190 +
  1191 + if (AssociatedTransportCargoList.getClass().getName().equals("java.util.ArrayList")){ //这里是为了判断 只发一票装载的情况,实际上上面event节点也要这样判断返回的是LIST还是MAP
1190 List<Map> AssociatedTransportCargo = (List<Map>) everyEvent.get("AssociatedTransportCargo"); 1192 List<Map> AssociatedTransportCargo = (List<Map>) everyEvent.get("AssociatedTransportCargo");
1191 for(Map AssociatedTransportCargoMap : AssociatedTransportCargo){ 1193 for(Map AssociatedTransportCargoMap : AssociatedTransportCargo){
1192 String uldType = AssociatedTransportCargoMap.get("TypeCode").toString(); 1194 String uldType = AssociatedTransportCargoMap.get("TypeCode").toString();
@@ -1194,14 +1196,15 @@ public class XmlToMapDemo { @@ -1194,14 +1196,15 @@ public class XmlToMapDemo {
1194 String PositioningEvent_OccurrencePositioningLocation_ID = ((Map)(((Map)(((Map) AssociatedTransportCargoMap.get("UtilizedUnitLoadTransportEquipment")).get("PositioningEvent"))).get("OccurrencePositioningLocation"))).get("ID").toString(); 1196 String PositioningEvent_OccurrencePositioningLocation_ID = ((Map)(((Map)(((Map) AssociatedTransportCargoMap.get("UtilizedUnitLoadTransportEquipment")).get("PositioningEvent"))).get("OccurrencePositioningLocation"))).get("ID").toString();
1195 1197
1196 Object IncludedMasterConsignmentList = AssociatedTransportCargoMap.get("IncludedMasterConsignment"); 1198 Object IncludedMasterConsignmentList = AssociatedTransportCargoMap.get("IncludedMasterConsignment");
1197 - if (IncludedMasterConsignmentList.getClass().equals("java.util.ArrayList")){ 1199 + if (IncludedMasterConsignmentList.getClass().getName().equals("java.util.ArrayList")){
1198 1200
1199 - }else if (IncludedMasterConsignmentList.getClass().equals("java.util.Map")){ //这里为MAP代表一个板里面装一件货 1201 + }else if (IncludedMasterConsignmentList.getClass().getName().equals("java.util.HashMap")){ //这里为MAP代表一个板里面装一件货
1200 Map IncludedMasterConsignmentMap = (Map)IncludedMasterConsignmentList; 1202 Map IncludedMasterConsignmentMap = (Map)IncludedMasterConsignmentList;
1201 String awbNumber = ((Map)IncludedMasterConsignmentMap.get("TransportContractDocument")).get("ID").toString(); 1203 String awbNumber = ((Map)IncludedMasterConsignmentMap.get("TransportContractDocument")).get("ID").toString();
  1204 + logger.info(awbNumber);
1202 } 1205 }
1203 } 1206 }
1204 - }else if (AssociatedTransportCargoList.getClass().equals("java.util.Map")){//是MAP单取下面节点就行,只发一票装载 报文中是一个航班,一个板箱,一个运单 1207 + }else if (AssociatedTransportCargoList.getClass().getName().equals("java.util.HashMap")){//是MAP单取下面节点就行,只发一票装载 报文中是一个航班,一个板箱,一个运单
1205 1208
1206 } 1209 }
1207 1210