使用rails and activeresource我获得了XML响应的非轨道样式的第三方API。我喜欢映射的对象基本上包裹在Prestahop元素中。我应该覆盖什么以摆脱该元素以正确映射对象?
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<order>
<id></id>
您应该使用自定义格式以满足您的需求,类似的解决方案可能是很好的解决方案。
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
我有一些外部服务,必须在其中讨论非轨道样式API。我正在使用Savon Gem的组合来做出肥皂请求和解析肥皂响应,而roxml宝石将实际XML映射到Ruby对象中。