n00b REST 问题。我正在向 API 的端点发出 GET 请求并获得正确的 XML 响应。我的问题是,如何使用 Ruby 在服务器 REST 响应中获取特定 XML 元素的值?
假设其中一个元素是“Body”,我想将其值“Blah blah blah”分配给一个变量
XML 响应的一部分:
<Body>Blah blah blah</Body>
我将如何处理响应?基本上我想做这样的事情
variable = params["Body"]
提前致谢!
最好的解决方案是使用RestClient或HTTParty并让它为您解析响应。
否则,您将不得不使用诸如 Nokogiri 之类的库来解析响应本身:
doc = Nokogiri.XML(response)
variable = doc.at("body").text
您将需要使用某种 XML 解析器。
听起来您想要XmlSimple 之类的东西,它将 XML 文档转换为 ruby 数组和散列。在已链接的页面上有大量如何使用它的示例。
需要注意的一件事是 XML 到本机容器的映射是不完善的。如果您正在处理复杂的文档,您可能希望使用更强大的解析器,例如Nokogiri。
如果您想要完整的 XML 对象映射,HappyMapper是一个不错的库,尽管它不再很活跃。它可以与任何来源的 XML 一起使用,因此您仍然需要 @Fitzsimmons 或 @MarkThomas 提到的库来执行 HTTP 请求。