将XML从HTTP请求转换为哈希

时间:2014-03-07 01:14:32

标签: ruby xml

我正在向公共IMDb风格的电视剧集服务发出HTTP请求。我返回了像

这样的数据
<title>The X-Files</title>
<episodes>202</episodes>
<ended>Yes</ended>

我想在我的程序中处理这些数据。最终,我想用它来形成SQL语句并将数据插入我的数据库。

然而,实际上将数据转换为哈希比我预期的要困难。我用谷歌搜索了,并且有许多宝石声称可以提供帮助,比如Simple-XML - 但他们期望文件,而且当我向它们传递包含XML的对象时似乎没有表现。

这种常见且可接受的方式是什么?

2 个答案:

答案 0 :(得分:1)

在使用这样的服务编写接口时,我使用HTTParty。它会自动将XML响应转换为哈希值。如果您想要更详细的答案,请提供您的代码和更多详细信息。

答案 1 :(得分:1)

您也可以使用SimpleXML gem解析普通数据。假设您已经安装了xml-simple gem,请执行

require 'xmlsimple'
xml_str = "<data><title>The X-Files</title><episodes>202</episodes><ended>Yes</ended></data>"
xml_dict = XmlSimple.xml_in(xml_str)

xml_str变量可以从http响应构建。

请注意,您拥有<title>The X-Files</title><episodes>202</episodes><ended>Yes</ended>的当前数据无效xml(它看起来是有效的标记,但不是,您可以检查here),因此我必须将它们包装在另一个父{{3}}中<data> 1}}自己的标签。