maven坐标
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
源码
public static Map getParamterByXML(String xml) throws Exception {
Map<String, String> map = new HashMap<String, String>();
Document document = DocumentHelper.parseText(xml);
Element rootEle = document.getRootElement();
List<Element> datasetList = rootEle.elements("DATASET");
for (Element dsetElement : datasetList) {
List<Element> dataList = dsetElement.elements("DATA");
for (Element dElement : dataList) {
List<Element> itemList = dElement.elements("ITEM");
for (Element iElement : itemList) {
String key = iElement.attributeValue("key");
String val = iElement.attributeValue("val");
if ("MSGID".equals(key) || "OPID".equals(key)) {
map.put(key, val);
}
}
List<Element> conditionList = dElement.elements("CONDITION");
for (Element cElement : conditionList) {
List<Element> itList = cElement.elements("ITEM");
for (Element iElement : itList) {
String key = iElement.attributeValue("key");
String val = iElement.attributeValue("val");
map.put(key, val);
}
}
}
}
return map;
}
<?xml version="1.0" encoding="utf-8"?>
<MESSAGE>
<DATASET name="COMMON_010000">
<DATA>
<ITEM key="APPTYPE" val="xxx"/>
<ITEM key="OPCODE" val="QUERYEXPRESSBRANCHINFO"/>
<ITEM key="MSGID" val="xxx"/>
<ITEM key="MSGTYPE" val="1"/>
<ITEM key="OPID" val="xxx"/>
</DATA>
</DATASET>
<DATASET name="COMMON_010010">
<DATA>
<CONDITION>
<ITEM key="BR_ID" val="xxx"/>
</CONDITION>
<CONDITION>
<ITEM key="BR_NAME" val="xxx"/>
</CONDITION>
<CONDITION>
<ITEM key="BR_MOBILEPHONE" val="xxx"/>
</CONDITION>
</DATA>
</DATASET>
</MESSAGE>
public static Map<String, Object> parseXmlByDom4j(String xml) throws Exception {
Map<String, Object> map = new HashMap<>();
Document document = DocumentHelper.parseText(xml);
Element rootEle = document.getRootElement();
map.put("BRANCHCODE", rootEle.elementTextTrim("branchCode"));
Element waybillInfoEle = rootEle.element("waybillInfo");
map.put("WAYBILLNO", waybillInfoEle.elementTextTrim("waybillCode"));
map.put("CONSIGNEENAME", waybillInfoEle.elementTextTrim("consigneeName"));
map.put("CONSIGNEEPHONE", waybillInfoEle.elementTextTrim("consigneeMobile"));
map.put("STATUS", waybillInfoEle.elementTextTrim("status"));
map.put("SENDERPHONE", waybillInfoEle.elementTextTrim("senderMobile"));
map.put("SENDERNAME", waybillInfoEle.elementTextTrim("senderName"));
map.put("CREATEDATE", waybillInfoEle.elementTextTrim("createTime"));
Element sendAddressEle = waybillInfoEle.element("sendAddress");
map.put("SENDERPROVINCENAME", sendAddressEle.elementTextTrim("provinceName"));
map.put("SENDERCITYNAME", sendAddressEle.elementTextTrim("cityName"));
map.put("SENDERAREANAME", sendAddressEle.elementTextTrim("areaName"));
map.put("SENDERDETAILADDRESS", sendAddressEle.elementTextTrim("detailAddress"));
Element consigneeAddressEle = waybillInfoEle.element("consigneeAddress");
map.put("CONSIGNEEPROVINCENAME", consigneeAddressEle.elementTextTrim("provinceName"));
map.put("CONSIGNEECITYNAME", consigneeAddressEle.elementTextTrim("cityName"));
map.put("CONSIGNEEAREANAME", consigneeAddressEle.elementTextTrim("areaName"));
map.put("CONSIGNEEDETAILADDRESS", consigneeAddressEle.elementTextTrim("detailAddress"));
Element bizIdListEle = waybillInfoEle.element("bizIdList");
map.put("BIZID", bizIdListEle.elementTextTrim("bizId"));
return map;
}
<request>
<cpCode>***</cpCode>
<branchCode>***</branchCode>
<waybillInfo>
<sellerId>***</sellerId>
<waybillCode>***</waybillCode>
<consigneeName>***</consigneeName>
<consigneeMobile>***********</consigneeMobile>
<sendAddress>
<provinceName>浙江省</provinceName>
<cityName>金华市</cityName>
<areaName>义乌市</areaName>
<detailAddress>*****</detailAddress>
</sendAddress>
<consigneeAddress>
<provinceName>甘肃省</provinceName>
<cityName>甘南藏族自治州</cityName>
<areaName>舟曲县</areaName>
<detailAddress>*****</detailAddress>
</consigneeAddress>
<status>2</status>
<senderPhone>***********</senderPhone>
<senderName>***</senderName>
<weight>175</weight>
<volume>0</volume>
<productType>*****</productType>
<isAliOrder>Y</isAliOrder>
<orderChannel>TB</orderChannel>
<msgVersion>0</msgVersion>
<bizIdList>
<bizId>**********</bizId>
</bizIdList>
<createTime>2019-01-07 23:59:13</createTime>
<segmentCode>*****</segmentCode>
</waybillInfo>
</request>