SOAP XML发送请求以及 返回的XML解析---webservice

Posted on 2022-04-07 16:25  jiaoqing。  阅读(799)  评论(0)    收藏  举报
/**
     * 
     * @param soapXml 请求结果string
     * @param c   要转换成的java对象
     * @param <T>
     * @return
     */
public static <T> T soapXmlToBean(String soapXml,Class<T> c){
        Iterator<SOAPElement> iterator = null;
        T t = null;
        try {
            //javax.xml.soap类MessageFactory
            MessageFactory msgFactory = MessageFactory.newInstance();
            //创建一个soapmessage对象
            SOAPMessage reqMsg = msgFactory.createMessage(new MimeHeaders(),
                    new ByteArrayInputStream(soapXml.getBytes("UTF-8")));
            reqMsg.saveChanges();
            //取出soapBoby对象
            SOAPBody body = reqMsg.getSOAPBody();
            遍历子节点
            iterator = body.getChildElements();
        }catch (Exception e){
            e.printStackTrace();
        }
        while (iterator.hasNext()) {
            SOAPElement element = iterator.next();
            logger.info("节点名称---:"+element.getNodeName());
            if("multiRef".equals(element.getNodeName())){
                Iterator<SOAPElement> it = element.getChildElements();
                SOAPElement el = null;
                while (it.hasNext()) {
                    el = it.next();
                    //取到content子节点的值
                    if ("content".equals(el.getNodeName())) {
                        logger.info("子节点值---:"+el.getValue());
                        //这里是调用工具来将content中的xml转换成java对象
                        t = XmlConverterUtil.analyzeXmlToBean(el.getValue(),c);
                        break;
                    }
                }
                break;
            }
        }
        return t;
    }

 

转载:https://blog.csdn.net/zz_lk_xx/article/details/84978699

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3