使用Soap1.1解析XML文件(Java)

最近公司需要调WebService接口 ,之前没有接触过,这次记录下来以供参考。

  • 用到的jar包 commons-codec-1.6.jar
    commons-logging-1.1.3.jar
    fluent-hc-4.3.2.jar
    httpclient-4.3.2.jar
    httpcore-4.4.13.jar
    dom4j-1.6.1.jar

1.编写解析Soap工具类

package com.haitaiinc.localinpinfo.common;

import com.haitaiinc.data.DBOperator;
import org.apache.http.HttpEntity;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;

import java.nio.charset.Charset;


/**
 * @Describe
 * @Author WangYuanXiang
 * @Date 2020/8/18 9:46
 **/
public class HttpClientCallSoapUtil {

    static int socketTimeout = 30000;// 请求超时时间
    static int connectTimeout = 30000;// 传输超时时间
    /**
     * 使用SOAP1.1发送消息
     *
     * @param postUrl
     * @param soapXml
     * @param soapAction
     * @return
     */
    public static String doPostSoap1_1(String postUrl, String soapXml,String soapAction) {
        String retStr = "";
        // 创建HttpClientBuilder
        HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
        // HttpClient
        CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
        HttpPost httpPost = new HttpPost(postUrl);
        //  设置请求和传输超时时间
        RequestConfig requestConfig = RequestConfig.custom()
                .setSocketTimeout(socketTimeout)
                .setConnectTimeout(connectTimeout).build();
        httpPost.setConfig(requestConfig);
        try {
            httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8");
            httpPost.setHeader("SOAPAction", soapAction);
            StringEntity data = new StringEntity(soapXml,
                    Charset.forName("UTF-8"));
            httpPost.setEntity(data);
            CloseableHttpResponse response = closeableHttpClient
                    .execute(httpPost);
            HttpEntity httpEntity = response.getEntity();
            if (httpEntity != null) {
                // 打印响应内容
                retStr = EntityUtils.toString(httpEntity, "UTF-8");
//                System.out.println("response:" + retStr);
            }
            // 释放资源
            closeableHttpClient.close();
        } catch (Exception e) {
            System.out.println("exception in doPostSoap1_1");
        }
        return retStr;
    }

}

2.编写用来存储数据的实体类

package com.haitaiinc.localinpinfo.entity;

/**
 * @Describe
 * @Author 
 * @Date 2020/8/18 12:18
 **/
public class ReqItem {
    private String SEQNO; //序号
    private String ITEMNO; //申请项目代码
    private String ITEMNAME; //申请项目名称
    private String QTY; //数量
    private String PRICE; //单价
    private String REQITEMNO; //申请明细号

    @Override
    public String toString() {
        return "ReqItem{" +
                "SEQNO='" + SEQNO + '\'' +
                ", ITEMNO='" + ITEMNO + '\'' +
                ", ITEMNAME='" + ITEMNAME + '\'' +
                ", QTY='" + QTY + '\'' +
                ", PRICE='" + PRICE + '\'' +
                ", REQITEMNO='" + REQITEMNO + '\'' +
                '}';
    }

    public ReqItem() {
    }

    public ReqItem(String SEQNO, String ITEMNO, String ITEMNAME, String QTY, String PRICE, String REQITEMNO) {
        this.SEQNO = SEQNO;
        this.ITEMNO = ITEMNO;
        this.ITEMNAME = ITEMNAME;
        this.QTY = QTY;
        this.PRICE = PRICE;
        this.REQITEMNO = REQITEMNO;
    }

    public String getSEQNO() {
        return SEQNO;
    }

    public void setSEQNO(String SEQNO) {
        this.SEQNO = SEQNO;
    }

    public String getITEMNO() {
        return ITEMNO;
    }

    public void setITEMNO(String ITEMNO) {
        this.ITEMNO = ITEMNO;
    }

    public String getITEMNAME() {
        return ITEMNAME;
    }

    public void setITEMNAME(String ITEMNAME) {
        this.ITEMNAME = ITEMNAME;
    }

    public String getQTY() {
        return QTY;
    }

    public void setQTY(String QTY) {
        this.QTY = QTY;
    }

    public String getPRICE() {
        return PRICE;
    }

    public void setPRICE(String PRICE) {
        this.PRICE = PRICE;
    }

    public String getREQITEMNO() {
        return REQITEMNO;
    }

    public void setREQITEMNO(String REQITEMNO) {
        this.REQITEMNO = REQITEMNO;
    }
}

package com.haitaiinc.localinpinfo.entity;

import java.util.List;

/**
 * @Describe
 * @Author WangYuanXiang
 * @Date 2020/8/18 12:21
 **/
public class ReqMain {
    private String SERIALNO; //申请号(条码号)
    private String DEPTNO; //申请科室代码(his代码)
    private String DEPTNAME; //申请科室名称
    private String WARDNO; //申请病区代码(his代码)
    private String WARDNAME; //申请病区名称
    private String REQDATETIME; //申请时间yyyy-mm-dd hh:mi:ss
    private String REQDOCTNO; //申请医生工号
    private String REQDOCTNAME; //申请医生姓名
    private String STATFLAG; //急诊标志1是0否
    private String PATNO; //病人号(住院号)
    private String PATNAME; //患者姓名
    private String SEX; //患者性别1男2女9未说明
    private String BIRTHDAY; //出生日期yyyy-mm-dd
    private String ADDRESS; //家庭地址或单位
    private String TELEPHONE; //电话
    private String DIAGNOSE; //初步诊断
    private String BEDNO; //床位号
    private String SAMPLRQ; //采样日期yyyy-mm-dd hh:mi:ss
    private String SAMPLER; //采样人
    private String SENDRQ; //送检日期yyyy-mm-dd hh:mi:ss
    private String SENDER; //送检人
    private String SAMPLETYPE; //样本类型编码
    private String SAMPLETYPENAME; //样本类型名称
    private String PATSN; //病人编号(就诊卡号)
    private String PATID; //病人id
    private String TESTITEMSNAME; //检验项目汇总名称
    private String RECIEVEDATETIME; //接收时间yyyy-mm-dd hh:mi:ss
    private String RECIEVEDOCTOR; //接收人
    private String REPORTDATETIME; //报告时间yyyy-mm-dd hh:mi:ss
    private String REPORTDOCTOR; //报告人
    private List<ReqItem> REQITEMS; //检验申请项目明细
    private List<ReqResult> REQRESULTS; //检验结果列表

    @Override
    public String toString() {
        return "ReqMain{" +
                "SERIALNO='" + SERIALNO + '\'' +
                ", DEPTNO='" + DEPTNO + '\'' +
                ", DEPTNAME='" + DEPTNAME + '\'' +
                ", WARDNO='" + WARDNO + '\'' +
                ", WARDNAME='" + WARDNAME + '\'' +
                ", REQDATETIME='" + REQDATETIME + '\'' +
                ", REQDOCTNO='" + REQDOCTNO + '\'' +
                ", REQDOCTNAME='" + REQDOCTNAME + '\'' +
                ", STATFLAG='" + STATFLAG + '\'' +
                ", PATNO='" + PATNO + '\'' +
                ", PATNAME='" + PATNAME + '\'' +
                ", SEX='" + SEX + '\'' +
                ", BIRTHDAY='" + BIRTHDAY + '\'' +
                ", ADDRESS='" + ADDRESS + '\'' +
                ", TELEPHONE='" + TELEPHONE + '\'' +
                ", DIAGNOSE='" + DIAGNOSE + '\'' +
                ", BEDNO='" + BEDNO + '\'' +
                ", SAMPLRQ='" + SAMPLRQ + '\'' +
                ", SAMPLER='" + SAMPLER + '\'' +
                ", SENDRQ='" + SENDRQ + '\'' +
                ", SENDER='" + SENDER + '\'' +
                ", SAMPLETYPE='" + SAMPLETYPE + '\'' +
                ", SAMPLETYPENAME='" + SAMPLETYPENAME + '\'' +
                ", PATSN='" + PATSN + '\'' +
                ", PATID='" + PATID + '\'' +
                ", TESTITEMSNAME='" + TESTITEMSNAME + '\'' +
                ", RECIEVEDATETIME='" + RECIEVEDATETIME + '\'' +
                ", RECIEVEDOCTOR='" + RECIEVEDOCTOR + '\'' +
                ", REPORTDATETIME='" + REPORTDATETIME + '\'' +
                ", REPORTDOCTOR='" + REPORTDOCTOR + '\'' +
                ", REQITEMS=" + REQITEMS +
                ", REQRESULTS=" + REQRESULTS +
                '}';
    }

    public ReqMain() {
    }

    public ReqMain(String SERIALNO, String DEPTNO, String DEPTNAME, String WARDNO,
                   String WARDNAME, String REQDATETIME, String REQDOCTNO, String REQDOCTNAME,
                   String STATFLAG, String PATNO, String PATNAME, String SEX,
                   String BIRTHDAY, String ADDRESS, String TELEPHONE, String DIAGNOSE,
                   String BEDNO, String SAMPLRQ, String SAMPLER, String SENDRQ,
                   String SENDER, String SAMPLETYPE, String SAMPLETYPENAME, String PATSN,
                   String PATID, String TESTITEMSNAME, String RECIEVEDATETIME,
                   String RECIEVEDOCTOR, String REPORTDATETIME,
                   String REPORTDOCTOR, List<ReqItem> REQITEMS, List<ReqResult> REQRESULTS) {
        this.SERIALNO = SERIALNO;
        this.DEPTNO = DEPTNO;
        this.DEPTNAME = DEPTNAME;
        this.WARDNO = WARDNO;
        this.WARDNAME = WARDNAME;
        this.REQDATETIME = REQDATETIME;
        this.REQDOCTNO = REQDOCTNO;
        this.REQDOCTNAME = REQDOCTNAME;
        this.STATFLAG = STATFLAG;
        this.PATNO = PATNO;
        this.PATNAME = PATNAME;
        this.SEX = SEX;
        this.BIRTHDAY = BIRTHDAY;
        this.ADDRESS = ADDRESS;
        this.TELEPHONE = TELEPHONE;
        this.DIAGNOSE = DIAGNOSE;
        this.BEDNO = BEDNO;
        this.SAMPLRQ = SAMPLRQ;
        this.SAMPLER = SAMPLER;
        this.SENDRQ = SENDRQ;
        this.SENDER = SENDER;
        this.SAMPLETYPE = SAMPLETYPE;
        this.SAMPLETYPENAME = SAMPLETYPENAME;
        this.PATSN = PATSN;
        this.PATID = PATID;
        this.TESTITEMSNAME = TESTITEMSNAME;
        this.RECIEVEDATETIME = RECIEVEDATETIME;
        this.RECIEVEDOCTOR = RECIEVEDOCTOR;
        this.REPORTDATETIME = REPORTDATETIME;
        this.REPORTDOCTOR = REPORTDOCTOR;
        this.REQITEMS = REQITEMS;
        this.REQRESULTS = REQRESULTS;
    }

    public String getSERIALNO() {
        return SERIALNO;
    }

    public void setSERIALNO(String SERIALNO) {
        this.SERIALNO = SERIALNO;
    }

    public String getDEPTNO() {
        return DEPTNO;
    }

    public void setDEPTNO(String DEPTNO) {
        this.DEPTNO = DEPTNO;
    }

    public String getDEPTNAME() {
        return DEPTNAME;
    }

    public void setDEPTNAME(String DEPTNAME) {
        this.DEPTNAME = DEPTNAME;
    }

    public String getWARDNO() {
        return WARDNO;
    }

    public void setWARDNO(String WARDNO) {
        this.WARDNO = WARDNO;
    }

    public String getWARDNAME() {
        return WARDNAME;
    }

    public void setWARDNAME(String WARDNAME) {
        this.WARDNAME = WARDNAME;
    }

    public String getREQDATETIME() {
        return REQDATETIME;
    }

    public void setREQDATETIME(String REQDATETIME) {
        this.REQDATETIME = REQDATETIME;
    }

    public String getREQDOCTNO() {
        return REQDOCTNO;
    }

    public void setREQDOCTNO(String REQDOCTNO) {
        this.REQDOCTNO = REQDOCTNO;
    }

    public String getREQDOCTNAME() {
        return REQDOCTNAME;
    }

    public void setREQDOCTNAME(String REQDOCTNAME) {
        this.REQDOCTNAME = REQDOCTNAME;
    }

    public String getSTATFLAG() {
        return STATFLAG;
    }

    public void setSTATFLAG(String STATFLAG) {
        this.STATFLAG = STATFLAG;
    }

    public String getPATNO() {
        return PATNO;
    }

    public void setPATNO(String PATNO) {
        this.PATNO = PATNO;
    }

    public String getPATNAME() {
        return PATNAME;
    }

    public void setPATNAME(String PATNAME) {
        this.PATNAME = PATNAME;
    }

    public String getSEX() {
        return SEX;
    }

    public void setSEX(String SEX) {
        this.SEX = SEX;
    }

    public String getBIRTHDAY() {
        return BIRTHDAY;
    }

    public void setBIRTHDAY(String BIRTHDAY) {
        this.BIRTHDAY = BIRTHDAY;
    }

    public String getADDRESS() {
        return ADDRESS;
    }

    public void setADDRESS(String ADDRESS) {
        this.ADDRESS = ADDRESS;
    }

    public String getTELEPHONE() {
        return TELEPHONE;
    }

    public void setTELEPHONE(String TELEPHONE) {
        this.TELEPHONE = TELEPHONE;
    }

    public String getDIAGNOSE() {
        return DIAGNOSE;
    }

    public void setDIAGNOSE(String DIAGNOSE) {
        this.DIAGNOSE = DIAGNOSE;
    }

    public String getBEDNO() {
        return BEDNO;
    }

    public void setBEDNO(String BEDNO) {
        this.BEDNO = BEDNO;
    }

    public String getSAMPLRQ() {
        return SAMPLRQ;
    }

    public void setSAMPLRQ(String SAMPLRQ) {
        this.SAMPLRQ = SAMPLRQ;
    }

    public String getSAMPLER() {
        return SAMPLER;
    }

    public void setSAMPLER(String SAMPLER) {
        this.SAMPLER = SAMPLER;
    }

    public String getSENDRQ() {
        return SENDRQ;
    }

    public void setSENDRQ(String SENDRQ) {
        this.SENDRQ = SENDRQ;
    }

    public String getSENDER() {
        return SENDER;
    }

    public void setSENDER(String SENDER) {
        this.SENDER = SENDER;
    }

    public String getSAMPLETYPE() {
        return SAMPLETYPE;
    }

    public void setSAMPLETYPE(String SAMPLETYPE) {
        this.SAMPLETYPE = SAMPLETYPE;
    }

    public String getSAMPLETYPENAME() {
        return SAMPLETYPENAME;
    }

    public void setSAMPLETYPENAME(String SAMPLETYPENAME) {
        this.SAMPLETYPENAME = SAMPLETYPENAME;
    }

    public String getPATSN() {
        return PATSN;
    }

    public void setPATSN(String PATSN) {
        this.PATSN = PATSN;
    }

    public String getPATID() {
        return PATID;
    }

    public void setPATID(String PATID) {
        this.PATID = PATID;
    }

    public String getTESTITEMSNAME() {
        return TESTITEMSNAME;
    }

    public void setTESTITEMSNAME(String TESTITEMSNAME) {
        this.TESTITEMSNAME = TESTITEMSNAME;
    }

    public String getRECIEVEDATETIME() {
        return RECIEVEDATETIME;
    }

    public void setRECIEVEDATETIME(String RECIEVEDATETIME) {
        this.RECIEVEDATETIME = RECIEVEDATETIME;
    }

    public String getRECIEVEDOCTOR() {
        return RECIEVEDOCTOR;
    }

    public void setRECIEVEDOCTOR(String RECIEVEDOCTOR) {
        this.RECIEVEDOCTOR = RECIEVEDOCTOR;
    }

    public String getREPORTDATETIME() {
        return REPORTDATETIME;
    }

    public void setREPORTDATETIME(String REPORTDATETIME) {
        this.REPORTDATETIME = REPORTDATETIME;
    }

    public String getREPORTDOCTOR() {
        return REPORTDOCTOR;
    }

    public void setREPORTDOCTOR(String REPORTDOCTOR) {
        this.REPORTDOCTOR = REPORTDOCTOR;
    }

    public List<ReqItem> getREQITEMS() {
        return REQITEMS;
    }

    public void setREQITEMS(List<ReqItem> REQITEMS) {
        this.REQITEMS = REQITEMS;
    }

    public List<ReqResult> getREQRESULTS() {
        return REQRESULTS;
    }

    public void setREQRESULTS(List<ReqResult> REQRESULTS) {
        this.REQRESULTS = REQRESULTS;
    }
}

package com.haitaiinc.localinpinfo.entity;

/**
 * @Describe 检验结果列表
 * @Author WangYuanXiang
 * @Date 2020/8/18 12:10
 **/
public class ReqResult {
    private String SEQNO; //序号
    private String TESTITEMNO; //结果项目代码
    private String TESTITEMNAME; //结果项目名称
    private String RESULT; //结果值
    private String RESULTFLAG; //结果标志 :H=偏高,M=正常,L=偏低,P=阳性等
    private String REFERENCE; //参考范围
    private String UNIT; // 结果单位

    @Override
    public String toString() {
        return "ReqResult{" +
                "SEQNO='" + SEQNO + '\'' +
                ", TESTITEMNO='" + TESTITEMNO + '\'' +
                ", TESTITEMNAME='" + TESTITEMNAME + '\'' +
                ", RESULT='" + RESULT + '\'' +
                ", RESULTFLAG='" + RESULTFLAG + '\'' +
                ", REFERENCE='" + REFERENCE + '\'' +
                ", UNIT='" + UNIT + '\'' +
                '}';
    }

    public ReqResult() {

    }

    public ReqResult(String SEQNO, String TESTITEMNO, String TESTITEMNAME, String RESULT, String RESULTFLAG, String REFERENCE, String UNIT) {
        this.SEQNO = SEQNO;
        this.TESTITEMNO = TESTITEMNO;
        this.TESTITEMNAME = TESTITEMNAME;
        this.RESULT = RESULT;
        this.RESULTFLAG = RESULTFLAG;
        this.REFERENCE = REFERENCE;
        this.UNIT = UNIT;
    }

    public String getSEQNO() {
        return SEQNO;
    }

    public void setSEQNO(String SEQNO) {
        this.SEQNO = SEQNO;
    }

    public String getTESTITEMNO() {
        return TESTITEMNO;
    }

    public void setTESTITEMNO(String TESTITEMNO) {
        this.TESTITEMNO = TESTITEMNO;
    }

    public String getTESTITEMNAME() {
        return TESTITEMNAME;
    }

    public void setTESTITEMNAME(String TESTITEMNAME) {
        this.TESTITEMNAME = TESTITEMNAME;
    }

    public String getRESULT() {
        return RESULT;
    }

    public void setRESULT(String RESULT) {
        this.RESULT = RESULT;
    }

    public String getRESULTFLAG() {
        return RESULTFLAG;
    }

    public void setRESULTFLAG(String RESULTFLAG) {
        this.RESULTFLAG = RESULTFLAG;
    }

    public String getREFERENCE() {
        return REFERENCE;
    }

    public void setREFERENCE(String REFERENCE) {
        this.REFERENCE = REFERENCE;
    }

    public String getUNIT() {
        return UNIT;
    }

    public void setUNIT(String UNIT) {
        this.UNIT = UNIT;
    }
}

3.用dom4j方法读取xml 存入到实体集合中

package com.haitaiinc.localinpinfo.loder;

import com.haitaiinc.Util;
import com.haitaiinc.htdb.adt.dto.Inpatient;
import com.haitaiinc.localinpinfo.common.HttpClientCallSoapUtil;
import com.haitaiinc.localinpinfo.entity.*;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.ByteArrayInputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


/**
 * 用DOM4J方法读取xml文件
 *
 * @author lune
 */
public class ReadXMLByDom4j {


    private static List<ReqMain> reqMainList = new ArrayList<ReqMain>();
    private static List<ReqItem> reqItemList = new ArrayList<ReqItem>();
    private static List<ReqResult> reqResultList = new ArrayList<ReqResult>();

    public static List<ReqMain> getReqMainList() {
        return reqMainList;
    }

    public static void setReqMainList(List<ReqMain> reqMainList) {
        ReadXMLByDom4j.reqMainList = reqMainList;
    }

    /**
     * 解析XML存入List中
     *
     */
    public static void getReqMain(Inpatient ip) {
        String lisReportSoapXml = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:dat=\"DATASERVICE\">\n" +
                "   <soapenv:Header/>\n" +
                "   <soapenv:Body>\n" +
                "      <GET_LIS_REPORT>\n" +
                "         <IPID>"+ip.getIpid()+"</IPID>\n" +
                "         <REPORTBEGINDATE>"+Util.format(ip.getAdmissionTime(), "yyyy-MM-dd")+"</REPORTBEGINDATE>\n" +
                "         <REPORTENDDATE>"+Util.format(ip.getHospitalDischargeTime(), "yyyy-MM-dd")+"</REPORTENDDATE>\n" +
                "         <STATUS>4</STATUS>\n" +
                "         <YL1></YL1>\n" +
                "         <YL2></YL2>\n" +
                "         <YL3></YL3>\n" +
                "      </GET_LIS_REPORT>\n" +
                "   </soapenv:Body>\n" +
                "</soapenv:Envelope>";
        
        
        System.out.println("lisReportSoapXml==="+lisReportSoapXml);
        
        String postUrl = "http://10.10.2.84:7071/services/DATASERVICE?wsdl";
        String xml = HttpClientCallSoapUtil.doPostSoap1_1(postUrl, lisReportSoapXml, "");
        System.out.println("调用webservice出参=="+xml);
        SAXReader reader = new SAXReader();
        try {
//            Document document = reader.read(new ByteArrayInputStream((XML.xml).getBytes("UTF-8")));
            Document document = reader.read(new ByteArrayInputStream((xml).getBytes("UTF-8")));
            //获取根节点
            Element reqMainStore = document.getRootElement();
            //获取子节点列表
            Iterator it = reqMainStore.elementIterator();
            while (it.hasNext()) {
                Element fistChild = (Element) it.next();

                //二级子节点
                Iterator iterator = fistChild.elementIterator();
                while (iterator.hasNext()) {
                    Element element = (Element) iterator.next();

                    //获取三级子节点:<BASICMSG> <LISMSG>
                    Iterator three = element.elementIterator();
                    while (three.hasNext()) {
                        Element threeElement = (Element) three.next();
                        if (threeElement.getName().equals("BASICMSG")) {
                            Iterator three1 = threeElement.elementIterator();
                            while (three1.hasNext()) {
                                Element threeElement1 = (Element) three1.next();
                            }
                        }
                        if (threeElement.getName().equals("LISMSG")) {
                            Iterator three2 = threeElement.elementIterator();
                            while (three2.hasNext()) {
                                ReqMain reqMain = new ReqMain();
                                Element threeElement2 = (Element) three2.next();
                                Iterator iterator1 = threeElement2.elementIterator();
//                                System.out.println("三21-->节点名:"+threeElement2.getName()+"值:"+threeElement2.getStringValue());
                                while (iterator1.hasNext()) {
                                    Element threeElement21 = (Element) iterator1.next();

                                    //System.out.println("<REQMAIN>子节点:"+threeElement21.getName()+"值:"+threeElement21.getStringValue());
                                    if (threeElement21.getName().equals("SERIALNO")) {
                                        reqMain.setSERIALNO(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("DEPTNO")) {
                                        reqMain.setDEPTNO(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("DEPTNAME")) {
                                        reqMain.setDEPTNAME(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("WARDNO")) {
                                        reqMain.setWARDNO(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("WARDNAME")) {
                                        reqMain.setWARDNAME(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("REQDATETIME")) {
                                        reqMain.setREQDATETIME(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("REQDOCTNO")) {
                                        reqMain.setREQDOCTNO(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("REQDOCTNAME")) {
                                        reqMain.setREQDOCTNAME(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("STATFLAG")) {
                                        reqMain.setSTATFLAG(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("PATNO")) {
                                        reqMain.setPATNO(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("PATNAME")) {
                                        reqMain.setPATNAME(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("SEX")) {
                                        reqMain.setSEX(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("BIRTHDAY")) {
                                        reqMain.setBIRTHDAY(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("ADDRESS")) {
                                        reqMain.setADDRESS(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("TELEPHONE")) {
                                        reqMain.setTELEPHONE(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("DIAGNOSE")) {
                                        reqMain.setDIAGNOSE(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("BEDNO")) {
                                        reqMain.setBEDNO(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("SAMPLRQ")) {
                                        reqMain.setSAMPLRQ(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("SAMPLER")) {
                                        reqMain.setSAMPLER(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("SENDRQ")) {
                                        reqMain.setSENDRQ(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("SENDER")) {
                                        reqMain.setSENDER(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("SAMPLETYPE")) {
                                        reqMain.setSAMPLETYPE(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("SAMPLETYPENAME")) {
                                        reqMain.setSAMPLETYPENAME(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("PATSN")) {
                                        reqMain.setPATSN(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("PATID")) {
                                        reqMain.setPATID(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("TESTITEMSNAME")) {
                                        reqMain.setTESTITEMSNAME(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("RECIEVEDATETIME")) {
                                        reqMain.setRECIEVEDATETIME(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("RECIEVEDOCTOR")) {
                                        reqMain.setRECIEVEDOCTOR(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("REPORTDATETIME")) {
                                        reqMain.setREPORTDATETIME(threeElement21.getStringValue());
                                    }
                                    if (threeElement21.getName().equals("REPORTDOCTOR")) {
                                        reqMain.setREPORTDOCTOR(threeElement21.getStringValue());
                                    }
                                    //是否是检验申请项目集合
                                    if (threeElement21.getName().equals("REQITEMS")) {
                                        //检验申请项目对象集合
                                        List<ReqItem> itemList = new ArrayList<ReqItem>();
                                        Iterator iterator2 = threeElement21.elementIterator();
                                        while (iterator2.hasNext()){
                                            ReqItem reqItem = new ReqItem();
                                            Element threeElementreqItems = (Element) iterator2.next();
//                                            System.out.println(threeElementreqItems.getName()+"值"+threeElementreqItems.getStringValue());
                                            Iterator iterator3 = threeElementreqItems.elementIterator();
                                            while (iterator3.hasNext()){
                                                //检验申请项目对象
                                                Element threeElementreqItem = (Element) iterator3.next();
                                                if (threeElementreqItem.getName().equals("SEQNO")){
                                                    reqItem.setSEQNO(threeElementreqItem.getStringValue());
                                                }
                                                if (threeElementreqItem.getName().equals("ITEMNO")){
                                                    reqItem.setITEMNO(threeElementreqItem.getStringValue());
                                                }
                                                if (threeElementreqItem.getName().equals("ITEMNAME")){
                                                    reqItem.setITEMNAME(threeElementreqItem.getStringValue());
                                                }
                                                if (threeElementreqItem.getName().equals("QTY")){
                                                    reqItem.setQTY(threeElementreqItem.getStringValue());
                                                }
                                                if (threeElementreqItem.getName().equals("PRICE")){
                                                    reqItem.setPRICE(threeElementreqItem.getStringValue());
                                                }
                                                if (threeElementreqItem.getName().equals("REQITEMNO")){
                                                    reqItem.setREQITEMNO(threeElementreqItem.getStringValue());
                                                }

                                            }
                                            itemList.add(reqItem);
                                        }
                                            reqMain.setREQITEMS(itemList);
                                    }
                                    //是否是检验结果列表
                                    if (threeElement21.getName().equals("REQRESULTS")) {
                                        //检验结果列表
                                        List<ReqResult> reqResultList = new ArrayList<ReqResult>();
                                        Iterator iterator2 = threeElement21.elementIterator();
                                        while (iterator2.hasNext()){
                                            ReqResult reqResult = new ReqResult();
                                            Element threeElementreqItems = (Element) iterator2.next();
                                            Iterator iterator3 = threeElementreqItems.elementIterator();
                                            while (iterator3.hasNext()){
                                                Element threeElementreqItem = (Element) iterator3.next();
                                                if (threeElementreqItem.getName().equals("SEQNO")){
                                                    reqResult.setSEQNO(threeElementreqItem.getStringValue());
                                                }
                                                if (threeElementreqItem.getName().equals("ITEMNO")){
                                                    reqResult.setTESTITEMNO(threeElementreqItem.getStringValue());
                                                }
                                                if (threeElementreqItem.getName().equals("ITEMNAME")){
                                                    reqResult.setTESTITEMNAME(threeElementreqItem.getStringValue());
                                                }
                                                if (threeElementreqItem.getName().equals("RESULT")){
                                                    reqResult.setRESULT(threeElementreqItem.getStringValue());
                                                }
                                                if (threeElementreqItem.getName().equals("RESULTFLAG")){
                                                    reqResult.setRESULTFLAG(threeElementreqItem.getStringValue());
                                                }
                                                if (threeElementreqItem.getName().equals("REFERENCE")){
                                                    reqResult.setREFERENCE(threeElementreqItem.getStringValue());
                                                }
                                                if (threeElementreqItem.getName().equals("UNIT")){
                                                    reqResult.setUNIT(threeElementreqItem.getStringValue());
                                                }

                                            }
                                            reqResultList.add(reqResult);
                                        }
                                        reqMain.setREQRESULTS(reqResultList);
                                    }

                                }
                                reqMainList.add(reqMain);
                            }
                        }
                    }
                }
            }

        } catch (DocumentException e) {

            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值