I used this library
http://common-lisp.net/project/cxml/ some time ago. I must say that the documentation on it may be confusing at the beginning... but worked all good in the end. It seriously lacks the listing of all available functions, methods and their specializations, instead it says that it "implements all DOM methods" and you are left to figure out what are those methods, but with some help from apropos, you'd get the basic idea of the insides.
PS:
Code: Select all
(require 'cxml)
(defparameter
*xml*
(cxml:parse "<?xml version=\"1.0\"?>
<soap:Envelope
xmlns:soap=\"http://www.w3.org/2001/12/soap-envelope\"
soap:encodingStyle=\"http://www.w3.org/2001/12/soap-encoding\">
<soap:Body xmlns:m=\"http://www.example.org/stock\">
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>"
(cxml-dom:make-dom-builder)))
(dom:child-nodes
(aref (dom:get-elements-by-tag-name *xml* "soap:Body") 0))
This would basically do, precisely what you have asked. But then, XML in itself is quite a convoluted format, when combined with SOAP it makes it... well, I don't really want to continue

but I hope you liked the Java thing you wrote
