Я хочу извлечь код и текст отдельно от мыльной неисправности, указанной ниже. Код, который я использую (перечисленный ниже xml), это печать кода и текста вместе.SoapFaultException - извлечь код и текст
<env:Fault xmlns:env = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:fault = "http://schemas.xmlsoap.org/soap/envelope/">
<faultcode>fault:Client</faultcode>
<faultstring>An error occurred. Please check the detail section.</faultstring>
<detail>
<e:serviceFault xmlns:e = "http://xml.comcast.com/types">
<e:messages>
<e:message>
<e:code>ERRORCODE-82828</e:code>
<e:text>Error Message.</e:text>
</e:message>
</e:messages>
</e:serviceFault>
</detail>
</env:Fault>
Код
public void printSoapFaultClientException(SoapFaultClientException e) {
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = null;
transformer = transformerFactory.newTransformer();
DOMResult result = new DOMResult();
transformer.transform(e.getSoapFault().getSource(), result);
NodeList nl = ((Document)result.getNode()).getElementsByTagName("detail");
System.out.println(" text content " + ((Element)nl.item(0)).getTextContent());
}
Благодаря @Ramachandran. API Spring просто возвращает код ошибки и faultstring и не возвращает внутренний код и текст. –
Xpath помог много. Спасибо! –
Я поймаю (SoapFaultClientException e) в блоке catch. как извлечь внутренний текст? –