ESB is agnostic about what's inside the message body. You should use jaxb or castor or whatever your favorite Unmarshaller is to do this.
However, if you use EBWS then SOAP is automatically removed from your message.
In terms of what to use for SOAPProcessor.getMessage(), i believe you just need to get the body like you are already doing (
String soapmsg = esbMessage.getBody().get().toString(); ) but this time you get it from the action you place after your SOAPProcessor because it is delivering the reponse in the default location.