使用Ruby从REST服务器响应中获取XML元素的值

时间:2012-11-02 01:38:50

标签: ruby xml rest

n00b REST问题。我正在向API的端点发出GET请求并获得正确的XML响应。我的问题是,如何使用Ruby获取服务器REST响应中特定XML元素的值?

所以让我们说其中一个元素是'Body',我想把它的值'Blah blah blah'分配给变量

XML响应的一部分:

<Body>Blah blah blah</Body>

我如何通过回复做到这一点?基本上我想做这样的事情

variable = params["Body"]

提前致谢!

3 个答案:

答案 0 :(得分:1)

最佳解决方案是使用RestClientHTTParty并让它为您解析响应。

否则,您将不得不使用诸如Nokogiri之类的库来解析响应:

doc = Nokogiri.XML(response)
variable = doc.at("body").text

答案 1 :(得分:1)

您需要使用某种XML解析器。

听起来你想要像XmlSimple这样的东西,它会将XML文档变成ruby数组和哈希。有很多关于如何在已链接的页面上使用它的示例。

需要注意的一点是XML到本机容器映射是不完美的。如果您正在处理复杂文档,则可能需要使用更强大的解析器,例如Nokogiri

答案 2 :(得分:0)

如果你想要完整的XML对象映射,HappyMapper是一个不错的库,虽然它不再是非常活跃的。它可以从任何来源使用XML,因此您仍然需要@Fitzsimmons或@MarkThomas提到的库来执行HTTP请求。