其他分享
首页 > 其他分享> > SOAP XML发送请求以及 返回的XML解析---webservice

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

作者:互联网

/**
     * 
     * @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

标签:XML,el,iterator,param,element,---,节点,SOAP,MessageFactory
来源: https://www.cnblogs.com/yyhhblog/p/16112941.html