Tôi đang cố gắng nhận các giá trị cụ thể từ phản hồi tôi nhận được từ dịch vụ web. Thật không may tôi không biết làm thế nào để làm điều đó. Tôi đã sử dụng mã được tìm thấy trên stackoverflow để tạo yêu cầu xà phòng và viết ra nội dung trả lời vào stdout:Yêu cầu xà phòng Java - đọc phản hồi xà phòng
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);
}
Tất cả đều hoạt động tốt nhưng tôi không cần nội dung đáp ứng toàn bộ:
<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>
Tôi chỉ cần giá trị mã và mô tả từ phản hồi này. Tôi có thể làm cái này như thế nào?
hãy xem XPATH nếu bạn đang cố gắng lấy một phần tử duy nhất từ thông báo xà phòng http://stackoverflow.com/questions/2811001/how-to-read-xml-using-xpath-in-java –
Tôi tin rằng có một cách để làm một cái gì đó như: 'soapResponse.getSOAPBody(). GetElementsByTagName()' nhưng tôi tiếp tục nhận được một số giá trị lạ trong khi cố gắng làm như thế này. – J33nn