从Java SOAP响应
问题描述:
获得价值我得到下面的SOAP响应从Java SOAP响应
<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>
我需要从上述反应得到Order_Number
。为此我写下面的代码
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);
}
}
}
我能够得到响应。但是我怎样才能得到Order_Number
的价值。
我正在使用Java。
答
你应该检索SOAPBody
对象和迭代的节点是这样的:
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
}
}
+0
我应该写“ns0:Order_Number”来代替“YOUR_TAG”吗? – user3441151
您正在使用的soapUI? – Rao