2

使用 Rails 和 ActiveResource 我得到了第三方 API 的非 Rails 样式的 XML 响应。我喜欢映射的对象基本上包裹在 prestahop 元素中。我应该重写什么来摆脱该元素以正确映射对象?

<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<order>
    <id></id> 
4

2 回答 2

2

您应该根据需要使用自定义格式化程序,这样的事情可能是很好的解决方案。

class PrestaXMLFormatter
  include ActiveResource::Formats::XmlFormat

  def decode(xml)
    ActiveResource::Formats::XmlFormat.decode(xml)['prestashop']
  end
end

class Order < ActiveResource::Base
  self.format = PrestaXMLFormatter.new
end  
于 2012-11-06T10:52:39.297 回答
0

我有一些外部服务,我必须谈论非 Rails 风格的 api。我正在使用Savon gem 的组合来发出 SOAP 请求并解析 SOAP 响应,并使用 Roxml gem 将实际的 XML 映射到 ruby​​ 对象中。

于 2013-07-10T16:35:02.393 回答