• dom4j解析XML


    import java.io.ByteArrayInputStream;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.apache.commons.codec.binary.Base64;
    import org.apache.log4j.Logger;
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.Node;
    import org.dom4j.io.SAXReader;
    private List<YDElectronWayBillRespVO> resolvePlaceOrderResp(String resp, boolean isUseCustomerYDElectronWaybillFlag,  Map<Integer, YDWayBillPrintNoticeLAndPickLDto> noticeAndPickMap) {
            if (logger.isDebugEnabled()){
                logger.debug("two-dimension sys place order response:" + resp);
            }
            SAXReader saxReader = new SAXReader();
            Document document = null;
            try {
                document = saxReader.read(new ByteArrayInputStream(resp.getBytes()));
            } catch (Exception e) {
                logger.error("解析下单接口返回结果异常:" + e);
                e.printStackTrace();
            }
            
            if (null == document) {
                logger.error("下单接口无返回结果。");
                throw new YDIllegalArgumentException("下单接口无返回结果。");
            }
            
            Element root = document.getRootElement();
            List<Element> elements = root.elements("response");
            List<YDElectronWayBillRespVO> vos = new ArrayList<YDElectronWayBillRespVO>();
            for (Element ele : elements){
                YDElectronWayBillRespVO vo = new YDElectronWayBillRespVO();
                Node serialNo = ele.element("order_serial_no"); // 唯一序列号
                Node status = ele.element("status");    // 发送状态
                Node msg = ele.element("msg");          // 返回消息
                Node waybillNo = ele.element("mail_no"); // 运单号
                Node pdfData = ele.element("pdf_info"); // PDF数据
                //System.out.println("返回数据:" + pdfData.getText().trim());
                Map<String, String> parameterMap = new HashMap<>();
                vo.setResult(status.getText().trim());
                //如果使用自定义电子面单模板,则将返回的明文信息取出
                if ("1".equals(status.getText().trim()) && isUseCustomerYDElectronWaybillFlag) {
                    try {
                        parameterMap = (Map<String, String>) JSON.parse(JSON.parseArray(JSON.parseArray(pdfData.getText().trim()).toArray()[0].toString()).toArray()[0].toString());
                        vo.setSenderBranchJc(parameterMap.get("sender_branch_jc"));
                        vo.setSenderName(parameterMap.get("sender_name"));
                        vo.setSenderAreaNames(parameterMap.get("sender_area_names"));
                        vo.setSenderCompany(parameterMap.get("sender_company"));
                        vo.setSenderPostcode(parameterMap.get("sender_postcode"));
                        vo.setSenderAddress(parameterMap.get("sender_address"));
                        vo.setPackageWd(parameterMap.get("package_wd"));
                        vo.setPackageWdjc(parameterMap.get("package_wdjc"));
                        vo.setSenderMobile(parameterMap.get("sender_mobile"));
                        vo.setSenderPhone(parameterMap.get("sender_phone"));
                        vo.setQrcode(parameterMap.get("qrcode"));
                        vo.setMailnoBarcode(parameterMap.get("mailno_barcode"));
                        vo.setPositionNo(parameterMap.get("position_no"));
                        vo.setPosition(parameterMap.get("position"));
                        vo.setReceiverName(parameterMap.get("receiver_name"));
                        vo.setReceiverCompany(parameterMap.get("receiver_company"));
                        vo.setReceiverAreaNames(parameterMap.get("receiver_area_names"));
                        vo.setReceiverPostcode(parameterMap.get("receiver_postcode"));
                        vo.setReceiverAddress(parameterMap.get("receiver_address"));
                        vo.setReceiverPhone(parameterMap.get("receiver_phone"));
                        vo.setReceiverMobile(parameterMap.get("receiver_mobile"));
                        vo.setSize(parameterMap.get("size"));
                        vo.setWeight(parameterMap.get("weight"));
                        vo.setMailType(parameterMap.get("mail_type"));
                        vo.setEmsFlag(parameterMap.get("ems_flag"));
                        vo.setCusArea1(parameterMap.get("cus_area1"));
                        vo.setCusArea2(parameterMap.get("cus_area2"));
                        vo.setCusArea3(parameterMap.get("cus_area3"));
                        vo.setOrderId(parameterMap.get("order_id"));
                        vo.setOrderType(parameterMap.get("order_type"));
                        vo.setStatus(parameterMap.get("status"));
                        vo.setTime(parameterMap.get("time"));
                        vo.setBigpenCode(parameterMap.get("bigpen_code"));
                        vo.setPositionZz(parameterMap.get("position_zz"));
                        vo.setTradeCode(parameterMap.get("trade_code"));
                        vo.setLatticeMouthNo(parameterMap.get("lattice_mouth_no"));
                        if (null != noticeAndPickMap && noticeAndPickMap.size() > 0) {
                            String serialNoString = serialNo.getText().trim();
                            Integer onhId = Integer.parseInt(serialNoString.substring(ORDER_SERIAL_NO_PREFIX.length(), serialNoString.lastIndexOf("_")));
                            YDWayBillPrintNoticeLAndPickLDto noticeLAndPickLDto = noticeAndPickMap.get(onhId);
                            vo.setOwnName(noticeLAndPickLDto.getOnhOwnerName());
                            vo.setOnhRemark(noticeLAndPickLDto.getOnhRemark());
                            vo.setOnhCellNo(noticeLAndPickLDto.getOnhCellNo());
                            vo.setNoticeItems(noticeLAndPickLDto.getNoticeItems());
                            vo.setPickItems(noticeLAndPickLDto.getPickItems());
                            vo.setOnhBuyerMessage(noticeLAndPickLDto.getOnhBuyerMessage());
                            vo.setOnhSellerMessage(noticeLAndPickLDto.getOnhSellerMessage());
                            vo.setOnhBuyerNickname(noticeLAndPickLDto.getOnhBuyerNickname());
                            vo.setOnhPlatformName(noticeLAndPickLDto.getOnhPlatformName());
                            vo.setOnhShopName(noticeLAndPickLDto.getOnhShopName());
                            vo.setOnhNoticeNo(noticeLAndPickLDto.getOnhNoticeNo());
                            vo.setOnhOwnerNo(noticeLAndPickLDto.getOnhOwnerNo());
                            vo.setOnhIsCod(noticeLAndPickLDto.getOnhIsCod());
                            vo.setOnhCodAmount(noticeLAndPickLDto.getOnhCodAmount());
                            vo.setOnhParcelInsurance(noticeLAndPickLDto.getOnhParcelInsurance());
                            vo.setOnhInsuranceAmount(noticeLAndPickLDto.getOnhInsuranceAmount());
                            vo.setOnhWaveNo(noticeLAndPickLDto.getOnhWaveNo());
                            vo.setOnhWaveRoundNo(noticeLAndPickLDto.getOnhWaveRoundNo());
                        }
                        
                    } catch (Exception e) {
                        String errorMsg = "";
                        logger.error(errorMsg);
                        throw new YDIllegalArgumentException(errorMsg);
                    }
                }
                
                vo.setSerialNo(serialNo.getText().trim());
                vo.setWaybillNo(waybillNo.getText().trim());
                vo.setRemark(msg.getText().trim());
                vo.setPdfInfo(pdfData.getText().trim());
                vo.setResult(status.getText().trim());
                vo.setQrcode(vo.getWaybillNo() + "," + vo.getTime() + "," + vo.getPackageWdjc());
                vos.add(vo);
            }
            return vos;
        }
  • 相关阅读:
    OPENC函数 UF_CSYS UF_MTX UF_VEC (判断矢量平行)(UF_VEC3_is_parallel)
    OPENC函数 UF_CUTTER UF_NCGROUP UF_PARAM(如何创建刀具)(UF_CUTTER_create)
    OPENC函数 (UF_setup UF_ncgroup UF_oper)(创建程序组并创建程序,然后把程序放入组中)(UF_OPER_create)
    OPENC函数 UF_CAM UF_NCGROUP (UF_CAM_opt_ask_types UF_CAM_opt_ask_subtypes UF_NCPROG_create UF_NCGROUP_accept_member)
    OPENC函数UF_UI_ONT UF_OPER (过切检查) (UF_OPER_is_path_gouged)
    OPENC函数 UF_SETUP UF_NCGROUP(获取CAM模块中 程序 机床 几何 加工方法的所有名称)(UF_SETUP_ask_geom_root UF_SETUP_ask_program_root)
    OPENC函数 UF_UI_ONT UF_OPER函数(对当前程序进行操作(获取名称))(UF_UI_ONT_ask_selected_nodes、UF_OPER_ask_cutter_group等)
    OPENC函数 UF_TRNS(平移 变换)( uf5943 , uf5947)
    openstackM版本安装
    openstack及组件简要介绍
  • 原文地址:https://www.cnblogs.com/tonggc1668/p/7473979.html
Copyright © 2020-2023  润新知