Savon:XML标签的数组

我正在使用Savon进行SOAP请求,在SOAP请求XML的某个地方,我需要生成这段代码:

     

最好的方法是什么?

我找到了解决方案。

 soap.body = { #... other tags "content" => { "item" => ["", "", ""], :attributes! => { "item" => { "a" => ["1", "2", "3"], "b" => ["0", "0", "0"] } } } #... other tags } 

Savon v0.9.7增加了对Builder的支持,我建议使用它而不是试图通过Hashes强制属性,因为它更具可读性:

 soap.body do |xml| xml.content do xml.item(:a => "1", :b => "0") xml.item(:a => "2", :b => "0") xml.item(:a => "3", :b => "0") end end 

你可以这样做:

 def content xml = Builder::XmlMarkup.new xml.content do xml.item(:a => "1", :b => "0") xml.item(:a => "2", :b => "0") xml.item(:a => "3", :b => "0") end end