Java读取多层级xml文件

         最近在做国际客服北京职场的项目,需要提供一个接口服务端的能力,也就是需要开发一个http+xml的协议,入参和出参均为Map格式,各系统间的请求或应答是以xml格式封装的。在将返回报文(xml)解析为Map输出时遇到一个难点:Java对于多层级xml的解析。现以一个客户资料查询接口为例将解析过程记录如下:

返回xml报文的简化形式:

<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
      <HEAD>
            <ORIGIN_DOMAIN>kefuxitongbianma</ORIGIN_DOMAIN>
            <HOME_DOMAIN>CUGCRM</HOME_DOMAIN>
            <ACTION_CODE>1</ACTION_CODE>
            <BUSI_CODE>QUERYCUST</BUSI_CODE>
            <TRANS_ID>20160220160635123456</TRANS_ID>
            <RET_CODE>0000</RET_CODE>
            <RET_MSG>success</RET_MSG>
      </HEAD>
      <BODY>
            <TOTAL_RECORDS>20</TOTAL_RECORDS>
            <TOTAL_PAGE>10</TOTAL_PAGE>
            <CURRENT_PAGE>1</CURRENT_PAGE>
            <CUSTINFOLIST>
                  <CUSTINFO>
                        <CUST_TYPE>001</CUST_TYPE>
                        <VIP_FLAG>true</VIP_FLAG>
                  </CUSTINFO>
                  <CUSTINFO>
                        <CUST_TYPE>002</CUST_TYPE>
                        <VIP_FLAG>false</VIP_FLAG>
                  </CUSTINFO>
                  <CUSTINFO>
                        <CUST_TYPE>003</CUST_TYPE>
                        <VIP_FLAG>false</VIP_FLAG>
                  </CUSTINFO>
            </CUSTINFOLIST>
      </BODY>
</ROOT>

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import net.sf.json.JSONObject;
import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Namespace;
import org.dom4j.QName;
/**
 * 解析xml的工具类
 * 1、将多层级xml解析为Map
 * 2、将多层级xml解析为Json
 *
 * @author lmb
 *
 */
public class ParseXmlUtil {
      
      public static Logger
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值