code: private Source sanitizeXml(@Nullable String xml) {
      if (xml != null && !sensitiveXPathStrings.isEmpty()) {
        try {
          DocumentBuilder documentBuilder = documentBuilderSupplier.get();
          XPath xpath = xpathSupplier.get();
          if (documentBuilder != null && xpath != null) {
            Document doc = documentBuilder.parse(new InputSource(new StringReader(xml)));
            for (String xpathString : sensitiveXPathStrings) {
              XPathExpression expr = xpath.compile(xpathString);
              Node node = (Node) expr.evaluate(doc, XPathConstants.NODE);
              if (node != null && node.getTextContent() != null) {
                node.setTextContent("REDACTED");
              }
            }
            return new DOMSource(doc);
          }
        } catch (SAXException e) {
          libLogger.warn("Unable to parse XML: {}", e);
        } catch (IOException e) {
          libLogger.warn("Unable to parse XML: {}", e);
        } catch (XPathExpressionException e) {
          libLogger.warn("Unable to parse XML: {}", e);
        }
      }
      return null;
    }
docs: Removes any sensitive information (such as an AdWords API developer token) from the provided
  XML.
  
  @return a Source if sanitizing was successful, or null if unable to parse and sanitize the
  provided XML