【问题标题】:Turning XML from HTTP request into hash [duplicate]将 XML 从 HTTP 请求转换为哈希 [重复]
【发布时间】:2014-03-07 01:14:31
【问题描述】:

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

<title>The X-Files</title>
<episodes>202</episodes>
<ended>Yes</ended>

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

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

执行此操作的常见且公认的方法是什么?

【问题讨论】:

    标签: ruby xml


    【解决方案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 响应构造。

    请注意,您拥有的当前数据 &lt;title&gt;The X-Files&lt;/title&gt;&lt;episodes&gt;202&lt;/episodes&gt;&lt;ended&gt;Yes&lt;/ended&gt; 不是有效的 xml(它看起来是有效的标记,但不是,您可以检查 here),所以我不得不将它们包装在另一个父 &lt;data&gt; 标记中拥有。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2019-01-20
        • 2021-07-13
        • 1970-01-01
        • 2016-08-26
        • 1970-01-01
        • 2021-03-31
        • 2011-07-16
        • 1970-01-01
        • 2010-12-16
        相关资源
        最近更新 更多