jaxb解析xml

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>
原文地址:https://www.cnblogs.com/tonggc1668/p/6513631.html