简体   繁体   中英

Java get Value from SOAP Response

I am getting the below SOAP Response

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <ns0:Get_Response xmlns:ns0="urn:DAL:OrderShim_WS">
         <ns0:Order_Number>Order001165</ns0:Order_Number>
      </ns0:Get_Response>
   </soapenv:Body>
</soapenv:Envelope>

I need to get Order_Number from above Response. For this I write the below Code

import javax.xml.soap.MessageFactory;
import javax.xml.soap.MimeHeaders;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;

public class Test {
    public static void main(String[] args) {
        try {
            SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
            SOAPConnection soapConnection = soapConnectionFactory.createConnection();
            String url = "http://devlocal:8080/arsys/services/";
            SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(), url);
            soapResponse.writeTo(System.out);

            soapConnection.close();
        } catch (Exception e) {
            System.out.println("Exception : " + e);
        }
    }
}

I can able to get Response. But How can I get the value of Order_Number .

I am using Java.

You should retrieve SOAPBody object and iterate its nodes like this:

SOAPBody body = soapResponse .getSOAPBody();

NodeList returnList = body.getElementsByTagName("YOUR_TAG");
for (int k = 0; k < returnList.getLength(); k++) {
    NodeList innerResultList = returnList.item(k).getChildNodes();
    // processing nodes
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM