import java.io.InputStream; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamReader; private CancleInOrOutProxy xmlParseForCancle(String xmlStr) throws Exception { InputStream is = new ByteArrayInputStream(xmlStr.getBytes("UTF-8")); CancleInOrOutProxy cancleProxy = new CancleInOrOutProxy(); InNoticeKey inKey = new InNoticeKey(); ExtCancelInNo extCancelInNo = new ExtCancelInNo(); XMLInputFactory factory = XMLInputFactory.newInstance(); XMLStreamReader reader = factory.createXMLStreamReader(is); String eleNameStart = ""; String eleNameEnd = ""; while (reader.hasNext()) { int type = reader.next(); switch (type) { case XMLStreamConstants.START_ELEMENT : eleNameStart = reader.getName().getLocalPart(); if ("warehouseCode".equalsIgnoreCase(eleNameStart)) { inKey.setWarehouseID(reader.getElementText()); } else if ("ownerCode".equalsIgnoreCase(eleNameStart)) { inKey.setCustomerID(reader.getElementText()); } else if ("orderCode".equalsIgnoreCase(eleNameStart)) { extCancelInNo.setInhOwnerNo(reader.getElementText()); } else if ("orderId".equalsIgnoreCase(eleNameStart)) { extCancelInNo.setInOrOutNoticeNo(reader.getElementText()); } else if ("orderType".equalsIgnoreCase(eleNameStart)) { extCancelInNo.setInhTxType(reader.getElementText()); } else if ("cancelReason".equalsIgnoreCase(eleNameStart)) { extCancelInNo.setReason(reader.getElementText()); } break; case XMLStreamConstants.END_ELEMENT : eleNameEnd = reader.getName().getLocalPart(); if ("request".equalsIgnoreCase(eleNameEnd)) { cancleProxy.setInNoticeKey(inKey); cancleProxy.setExtCancelInNo(extCancelInNo); return cancleProxy; } break; default : break; } } return null; }
<request> <warehouseCode>wms_test_20150908</warehouseCode> <ownerCode>customer_0908</ownerCode> <orderCode>201612300925</orderCode> <orderType>B2BCK</orderType> <cancelReason>取消原因</cancelReason> </request>