17

私はxmlを返すいくつかのサービスを使用しています:

response = HTTParty.post(service_url)
response.parsed_response 
=> "\n\t<Result>\n<success>\ntrue\n</success>\n</Result>"

この文字列をハッシュに変換する必要があります。このようなもの:

response.parsed_response.to_hash
=> {:result => { :success => true } }

これを行う方法は?

4

5 に答える 5

11

ruby ハッシュへの XML 応答を解析するには、 nokogiriを使用します。かなり速いです。

require 'active_support/core_ext/hash'  #from_xml 
require 'nokogiri'

doc = Nokogiri::XML(response_body)
Hash.from_xml(doc.to_s)
于 2014-04-17T08:39:09.520 に答える
3

以下でこれを試すことができます:

require 'active_support/core_ext/hash/conversions'  
str = "\n\t<Result>\n<success>\ntrue\n</success>\n</Result>".gsub("\n", "").downcase

Hash.from_xml(str)
# => {"result"=>{"success"=>"true"}}
于 2013-06-13T05:04:54.950 に答える