如何在rails中处理XML响应

时间:2014-06-20 13:55:42

标签: ruby-on-rails-3 ruby-on-rails-4 xml-parsing xml-serialization

我正在构建一个连接到dynadot xml api的简单域名应用。我使用httparty使用下面的代码向api发出请求

  def index
    reqd = HTTParty.get("https://api.dynadot.com/api3.xml?key=xxxxx&command=search&domain0=mydomain.com&domain1=mydomain.net").body
    puts reqd
  end

我得到以下输出

<Results>
   <SearchResponse><SearchHeader>
   <SuccessCode>0</SuccessCode>
   <DomainName>mydomain.com</DomainName>
   <Status>success</Status>
   <Available>no</Available>
   </SearchHeader></SearchResponse>
   <SearchResponse><SearchHeader>
   <SuccessCode>0</SuccessCode>
   <DomainName>mydomain.net</DomainName>
   <Status>success</Status>
   <Available>no</Available>
   </SearchHeader></SearchResponse></Results>

是否可以在rails中传递它并将其表示为一个数组,我可以循环遍历所有域名并将其显示为包含可用或不可用的列表以及转换为html时旁边的域名。如果可能的话,我想知道如何使用代码示例或解释。谢谢。

1 个答案:

答案 0 :(得分:2)

这是一种简单的方法:

# require 'active_support/core_ext/hash/conversions'
hash = Hash.from_xml(your_xml)

your_xml变量是一个类似您粘贴的字符串。您也可以使用Nokogiri解析XML,然后使用#to_s并将其作为参数传递给Hash#from_xml