使用dom4j获取xml参数,使用dom4j封装xml格式返回参数

mac2025-06-19  7

1.XML请求包格式

<?xml  version=“1.0”  encoding=“GBK”?>

<CLEcdsData>

<opReq> <!-- 交易请求数据 -->

<bsnCode>ECD7070</bsnCode> 

<cstNo>1000000700</cstNo>  

<serialNo>1234567890123</serialNo> 

<reqDate>20081117</ reqDate>   <!—请求日期8位-->

<reqTime>182230</reqTime>  <!—请求时间6位 -->

<ReqParam>         <!-- 交易请求参数实体,里面的具体参数可以添加 -->

<bsnCode>182230</bsnCode>

……

</ReqParam>

</opReq>

</CLEcdsData>

2.xml返回包格式

<?xml  version=“1.0”  encoding=“GBK”?>

<CLEcdsData>

<opRep>                                      <!--  交易响应数据 -->

<serialNo>12345678901234567890</serialNo>  <!-- 原样返回交易序列号 -->

<opResult>                               <!--  交易结果  -->

……                                 <!--  各个交易结果参数 -->

</opResult>

</opRep>

</CLEcdsData>

3.解析xml工具类

import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element;

import com.longtop.efmp.ecd.webservice.model.ReturnInfo;

public class ReturnData {

    //抽取入参返回出参     public static ReturnInfo getXmlInfo(String xml){         ReturnInfo returnInfo=new ReturnInfo();         Document document = null;         try {             document = DocumentHelper.parseText(xml);         } catch (DocumentException e1) {             e1.printStackTrace();         }         Element el = document.getRootElement();         //获取opReq数据         Element opReqel =  el.element("opReq");         String serialNo = opReqel.element("serialNo").getTextTrim();         //获取ReqParam数据         Element reqParamel = opReqel.element("ReqParam");         String bsnCode = reqParamel.element("bsnCode").getTextTrim();         //封装返回结果         Document documentReturn = DocumentHelper.createDocument();// 获取document         documentReturn.setXMLEncoding("GBK");// 设置编码         Element oneChildElement = documentReturn.addElement("CLEcdsData");// 创建根元素         Element opRepElement = oneChildElement.addElement("opRep");// 创建根元素         Element serialNoElement = opRepElement.addElement("serialNo");// 创建子元素         Element retCodeElement = opRepElement.addElement("retCode");// 创建子元素         Element retMsgElement = opRepElement.addElement("retMsg");// 创建子元素         Element opResultElement = opRepElement.addElement("opResult");// 创建子元素         if(opReqel.element("serialNo").getTextTrim()!=null){             serialNoElement.setText(opReqel.element("serialNo").getTextTrim());

        }         //默认成功         retCodeElement.setText("001");         retMsgElement.setText("成功");         returnInfo.setOpReqel(opReqel);         returnInfo.setReqParamel(reqParamel);         returnInfo.setDocumentReturn(documentReturn);         returnInfo.setRetCodeElement(retCodeElement);         returnInfo.setRetMsgElement(retMsgElement);         returnInfo.setOpResultElement(opResultElement);         returnInfo.setSerialNoElement(serialNoElement);         //returnInfo可以重新封装对应的参数体         return returnInfo;     } }

 

ReturnInfo  类

public class ReturnInfo  implements Serializable{          private static final long serialVersionUID = 1L;               private Element opReqel;//请求opReqel参数          private Element reqParamel;//请求reqParamel参数          private Document documentReturn;//返回数据          private Element retCodeElement;//返回编码          private Element retMsgElement;//返回描述          private Element opResultElement;//返回数据          private Element serialNoElement;//返回交易序列号

         public Element getSerialNoElement() {         return serialNoElement;     }

    public void setSerialNoElement(Element serialNoElement) {         this.serialNoElement = serialNoElement;     }

    public Element getOpReqel() {         return opReqel;     }

    public void setOpReqel(Element opReqel) {         this.opReqel = opReqel;     }

    public Element getRetCodeElement() {         return retCodeElement;     }

    public void setRetCodeElement(Element retCodeElement) {         this.retCodeElement = retCodeElement;     }

    public Element getRetMsgElement() {         return retMsgElement;     }

    public void setRetMsgElement(Element retMsgElement) {         this.retMsgElement = retMsgElement;     }

    public Element getOpResultElement() {         return opResultElement;     }

    public void setOpResultElement(Element opResultElement) {         this.opResultElement = opResultElement;     }

    public Document getDocumentReturn() {         return documentReturn;     }

    public void setDocumentReturn(Document documentReturn) {         this.documentReturn = documentReturn;     }

    public Element getReqParamel() {         return reqParamel;     }

    public void setReqParamel(Element reqParamel) {         this.reqParamel = reqParamel;     }           }

最新回复(0)