1

我已经阅读了一些帖子,建议您可以使用 Rails 内置方法从 XML 创建哈希

from_xml

所以例如我可以做

Hash.from_xml(object)

就我而言,我正在从 api 检索 XML 并使用 Nokogiri 解析它,就像这样

url = "https://www.google.com/m8/feeds/contacts/default/full?client_id=#{client_id}&access_token=#{current_user.token}&max-results=#{max_results}";
doc = Nokogiri::XML(open(url))

现在如果我尝试

Hash.from_xml(doc)

我收到 REXML 解析错误。这是因为我需要从未解析的 XML 创建哈希吗?

我希望对此有更好的理解,我读过的文件似乎水平很高,如果有任何可以提供基本解释或指向可以提供的资源,我可以阅读它并希望获得更好的理解

4

1 回答 1

2

它期待一个字符串。

尽管此文档页面在其方法描述中没有这样说,但从注释中的示例可以清楚地看出,输入应该是 XML 字符串。

你应该能够做到:

Hash.from_xml(open(url).read)

编辑:看来,在 Rails 下,Nokogiri 有一个to_hash方法。所以你也可以这样做:

doc = Nokogiri::XML(open(url))
xml_hash = doc.to_hash
于 2013-04-04T09:15:00.997 回答