• dom4j解析xml


    待解析的xml文如下:

    View Code
    <root>
    <requestContent>
        <requestFrom></requestFrom>
            <logNeId></logNeId>
            <areaCode></areaCode>
            <servCode></servCode>
            <operateId></operateId>
            <synTimeOut></synTimeOut>
            <cmdpParas>
                <cmdPara>
                    <fromParaCode></fromParaCode>
                    <paraValue></paraValue>
                </cmdPara>
                <cmdPara>
                    <fromParaCode></fromParaCode>
                    <paraValue></paraValue>
                </cmdPara>
            </cmdParas>
        </requestContent>
    </root>

    解析如下:

    /**
         * 解析请求xml<br>
         * @param xml 请求的xml
        * @return String由错误编码和错误描述拼接而成
         */
          public  String readStringXml(String xml){
              NeopRequest neopRequest =new NeopRequest();
              String synTimeOut=null;//超时时间
              Document doc = null;
              try {
                doc = DocumentHelper.parseText(xml);// 将字符串转为XML
                Element rootElt = doc.getRootElement(); // 获取根节点
                System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称
                Iterator iter = rootElt.elementIterator("requestContent"); // 获取根节点下的子节点requestContent
                while(iter.hasNext()){
                    Element recordEle = (Element) iter.next();
                    String requestFrom = recordEle.elementTextTrim("requestFrom"); // 拿到requestContent节点下的子节点requestFrom值
                    neopRequest.setRequestFrom(requestFrom);//请求来源标识
                    logger.info("requestFrom:" + requestFrom);
                    String logNeId = recordEle.elementTextTrim("logNeId"); // 拿到requestContent节点下的子节点logNeId值
                    logger.info("logNeId:" + logNeId);
                    neopRequest.setLogicNeId(Long.parseLong(logNeId));//逻辑网元id
                    
                    String areaCode = recordEle.elementTextTrim("areaCode"); // 拿到requestContent节点下的子节点areaCode值
                    logger.info("areaCode:" + areaCode);
                    neopRequest.setLocalAreaCode(areaCode); //本地网编码
                    
                    String servCode = recordEle.elementTextTrim("servCode"); // 拿到requestContent节点下的子节点servCode值
                    logger.info("servCode:" + servCode);
                    
                    neopRequest.setListCmdTemplateId(SouthInvokService.getCmdTemplateIds(Long.parseLong(logNeId), servCode)); //命令模版ID,用来匹配指令模版
                    
                    
                    String operateId = recordEle.elementTextTrim("operateId"); // 拿到requestContent节点下的子节点operateId值
                    logger.info("operateId:" + operateId);
                    neopRequest.setRequestId(operateId);//操作id, 对应每次请求的序列号
                    
    
                    synTimeOut = recordEle.elementTextTrim("synTimeOut"); // 拿到requestContent节点下的子节点synTimeOut值,超时时间
                    logger.info("synTimeOut:" + synTimeOut);
                    
                    Element cmdParas = recordEle.element("cmdParas"); //cmdParas节点
                    Iterator it = cmdParas.elementIterator("cmdPara");
                     while(it.hasNext()){
                        Element e = (Element) it.next();
                        Map<String, String> mapCmdPara = new HashMap<String, String>();
                        String fromParaCode=e.elementTextTrim("fromParaCode");
                        String paraValue=e.elementTextTrim("paraValue");
                        logger.info("上游系统编码"+fromParaCode+"对应的参数值是:"+paraValue);
                        neopRequest.setCmdPara(mapCmdPara);//命令参数
                     }
                }
            } catch (DocumentException e) {
                logger.error("xml解析异常!", e);
              }
            long t1 = System.currentTimeMillis();
            NeopResponse neopResponse=submitRequest(neopRequest,synTimeOut);
            long t2 = System.currentTimeMillis();
            long realSpendTime = t2 - t1;
            logger.info("【耗时】: " + realSpendTime + " 毫秒");
            //返回响应的xml
            return createXml(neopResponse);
          }
  • 相关阅读:
    如何挑选适合的前端框架
    为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
    Spring框架文档与API(4.3.6版本)
    Spring Framework Ecosystem – Introduction to Spring Projects
    What is the difference between J2EE and Spring
    WPS添加页码不是从首页开始
    C语言文件方式输入与输出(最简洁方便实用的一种方式)
    hibernate---注解--CascadeType属性
    hibernate------java-delete-insert-update
    hibernate---注释 ----(购物:人顾客售货员boss)
  • 原文地址:https://www.cnblogs.com/kunpengit/p/2872685.html
Copyright © 2020-2023  润新知