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