Function: soap-parse-server-response

soap-parse-server-response is a byte-compiled function defined in soap-client.el.gz.

Signature

(soap-parse-server-response)

Documentation

Error-check and parse the XML contents of the current buffer.

Source Code

;; Defined in /usr/src/emacs/lisp/net/soap-client.el.gz
;;;;; Loading WSDL from XML documents

(defun soap-parse-server-response ()
  "Error-check and parse the XML contents of the current buffer."
  (let ((mime-part (mm-dissect-buffer t t)))
    (when (and
           (equal (mm-handle-media-type mime-part) "multipart/related")
           (equal (get-text-property 0 'type (mm-handle-media-type mime-part))
                  "text/xml"))
      (setq mime-part
            (mm-make-handle
             (get-text-property 0 'buffer (mm-handle-media-type mime-part))
             `(,(get-text-property 0 'type (mm-handle-media-type mime-part))))))
    (unless mime-part
      (error "Failed to decode response from server"))
    (unless (equal (car (mm-handle-type mime-part)) "text/xml")
      (error "Server response is not an XML document"))
    (with-temp-buffer
      (mm-insert-part mime-part)
      (prog1
          (car (xml-parse-region (point-min) (point-max)))
        (kill-buffer)
        (mm-destroy-part mime-part)))))