Savon将XML作为字符串返回,而不是哈希

我试图使用Savon解析SOAP响应。 响应是XML,但作为一个长字符串返回。 如果我使用#to_hash,整个XML对象仍然是一个字符串,现在存储在其中

hash[:response][:return] 

这意味着它仍然是一个巨大的无法使用的混乱。

我的代码看起来像

 response = soapClient.request(:get_sites_user_can_access) do soap.body = { :sessionid => session[:login_response][:login_return], :eid => user } end rep = response.to_hash pp rep[:get_sites_user_can_access_response][:get_sites_user_can_access_return] 

我错过了从响应中获取有用信息的哪一步? 注意:遗憾的是,由于它包含的信息,我无法发布XML响应,但它看起来像一个整个XML文档存储为字符串。 它的类是Nori :: StringWithAttributes

我能够获得所需的结果,但使用此文档解析Nori字符串(?)。 这似乎不是一个理想的方法,但我意识到最后一个元素是一个哈希数组。 所以它是哈希,散列, 哈希数组 。 无论如何,这对我有用。 关于如何使这个不那么丑陋和笨重的建议将不胜感激。

 response = soapClient.request(:get_sites_user_can_access) do soap.body = { :sessionid => session[:login_response][:login_return], :eid => user } end rep = response.to_hash[:get_sites_user_can_access_response][:get_sites_user_can_access_return] hrep = Nori.parse(rep) hrep[:list][:item].each { |item| pp item[:site_id] }