java 解析字符串soap

来源:互联网 发布:管理数据分析 编辑:程序博客网 时间:2024/06/05 05:02
package com.vdyoo.cloud;import com.vdyoo.cloud.paas.business.PaasBusinessApiApplication;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import javax.xml.soap.*;import java.io.ByteArrayInputStream;import java.util.HashMap;import java.util.Iterator;import java.util.Map;@RunWith(SpringRunner.class)@SpringBootTest(classes = PaasBusinessApiApplication.class)public class VidyoLogicServiceTest extends BaseTest {    @Test    public void xmltest() throws DocumentException {        String xml = "<?xml version='1.0' encoding='UTF-8'?>" +                "<Test>" +                "<name>haha。。。</name>" +                "<age>24岁。。。。</age>" +                "</Test>";        Document dom = DocumentHelper.parseText(xml);        Element root = dom.getRootElement();        String name = root.element("name").getText();        String age= root.element("age").getText();        System.out.println(name);        System.out.println(age);    }    @Test    public  void teste6(){        String soap = "<?xml version='1.0' encoding='UTF-8'?>" +                "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">" +                "<soapenv:Body>" +                "<ns19:NotifyUserStatus xmlns:ns19=\"http://ws.vidyo.com/notification\">" +                "<ns19:UserStatus>" +                "<ns19:username>王 </ns19:username>" +                "<ns19:tenant>是好人</ns19:tenant>" +                "<ns19:MemberStatus>Online</ns19:MemberStatus>" +                "</ns19:UserStatus>" +                "</ns19:NotifyUserStatus>" +                "</soapenv:Body>" +                "</soapenv:Envelope>";        try {            MessageFactory msgFactory;            msgFactory = MessageFactory.newInstance();            SOAPMessage reqMsg = msgFactory.createMessage(new MimeHeaders(), new ByteArrayInputStream(soap.getBytes("UTF-8")));            reqMsg.saveChanges();            SOAPBody body = reqMsg.getSOAPBody();            Iterator<SOAPElement> iterator = body.getChildElements();            Map map = PrintBody(iterator, null);            System.out.println("__________________"+map);        } catch (Exception e) {            e.printStackTrace();        }    }      Map PrintBody(Iterator<SOAPElement> iterator, String side) {        Map map = new HashMap();        while (iterator.hasNext()) {            SOAPElement element = (SOAPElement) iterator.next();            if (element.getTagName().equals("ns19:username")) {                map.put("username", element.getValue());            }            if (element.getTagName().equals("ns19:tenant")) {                map.put("tenant", element.getValue());            }            if (element.getTagName().equals("ns19:MemberStatus")) {                map.put("MemberStatus", element.getValue());            }            if (null == element.getValue() && element.getChildElements().hasNext()) {                Map map1 = PrintBody(element.getChildElements(), side + "-----");                return map1;            }        }        return map;    }}
原创粉丝点击