= Apricot eats Gorilla Apricot eats Gorilla is a helper for working with XML and SOAP messages. It's based on CobraVsMongoose but without REXML and the BadgerFish convention. Also it offers some extras for working with SOAP messages. == Install $ sudo gem install smacks-apricoteatsgorilla --source http://gems.github.com == Dependencies Hpricot 0.6.164 (also available for JRuby) == An example Let's assume you receive the following SOAP response: xml = ' false 449810 <name>Jungle Julia</name> <email>jj@example.com</email> <address /> </customer> </return> </ns2:findCustomerByIdResponse> </soap:Body> </soap:Envelope>' Just pass in the raw XML string: require "rubygems" require "apricoteatsgorilla hash = ApricotEatsGorilla.xml_to_hash(xml, "//return") Or use the shortcut: hash = ApricotEatsGorilla(xml, "//return") And it gets converted into a nice little Hash: "empty" => false, "customer" => { "address" => nil, "name" => "Jungle Julia", "title" => nil, "id" => "449810", "email" => "jj@example.com" } == Conclusions * The xml_to_hash method starts parsing the XML at the root node by default. By calling the method with an XPath expression as second parameter, we're able to define a custom root node. * Node attributes are ignored and won't be included in the hash. * The value of empty element nodes will be nil. * Node values of "true" or "false" will be converted to boolean objects. == More information Take a look at the tests for some more examples.