我試圖從我從webservice得到的響應中獲取特定值。不幸的是我不知道該怎麼做。我用計算器發現代碼創建SOAP請求,並寫出響應內容到標準輸出:Java肥皂請求 - 閱讀肥皂響應
private static void printSOAPResponse(SOAPMessage soapResponse) throws Exception {
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
Source sourceContent = soapResponse.getSOAPPart().getContent();
System.out.print("\nResponse SOAP Message = ");
StreamResult result = new StreamResult(System.out);
transformer.transform(sourceContent, result);
}
這一切運作良好,但我不需要整個響應內容:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bin="http://localhost/WebService/bindings" xmlns:typ="http://localhost/WebService/types">
<soapenv:Header/>
<soapenv:Body>
<bin:doActionResponse>
<bin:out>
<typ:result>
<typ:code>?</typ:code>
<typ:description>?</typ:description>
</typ:result>
</bin:out>
</bin:doActionResponse>
</soapenv:Body>
</soapenv:Envelope>
我只是需要的代碼值以及這個迴應的描述。我怎樣才能做到這一點?
看看XPATH如果你試圖從肥皂消息中獲取單個元素http://stackoverflow.com/questions/2811001/how-to-read-xml-using-xpath-in-java –
我相信有一種方法可以做這樣的事情:'soapResponse.getSOAPBody()。getElementsByTagName()',但我一直在嘗試這樣做時會遇到一些奇怪的值。 – J33nn