I'm trying to replace SOAP Body element with a string from SOAP message (SOAPMessage object) which looks like
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing">
  <soap:Header>
   ..... SOAP Headers ....
    </soap:Header>
    <soap:Body>
    ... SOAP body part...
    </soap:Body>
</soap:Envelope>
to
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing">
  <soap:Header>
   ..... SOAP Headers ....
    </soap:Header>
    <soap:Body>
     Body part was removed.
    </soap:Body>
</soap:Envelope>
To do that I have used XPath
Document doc = convertStringToDocument(message);
XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "//soap:Envelope/soap:Body";
Node node = (Node) xpath.evaluate(expression, doc, XPathConstants.NODE);
// Set the node content
node.setTextContent("Body part was removed.");
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer();
StringWriter buffer = new StringWriter();
transformer.transform(new DOMSource(doc), new StreamResult(buffer));
String markedMessage = buffer.toString();
but it came back as node = nullso it wasn't replaced with a string
