Ruby Savon:XML标记数组

Ruby Savon:XML标记数组,ruby,xml,soap,savon,Ruby,Xml,Soap,Savon,我将用于SOAP请求,在SOAP请求XML的某些地方,我需要生成以下代码: <content> <item a="1" b="0"/> <item a="2" b="0"/> <item a="3" b="0"/> </content> 做这件事最好的方法是什么?你可以做如下事情: def content xml = Builder::XmlMarkup.new xml.content do xml.i

我将用于SOAP请求,在SOAP请求XML的某些地方,我需要生成以下代码:

<content>
  <item a="1" b="0"/>
  <item a="2" b="0"/>
  <item a="3" b="0"/>
</content>


做这件事最好的方法是什么?

你可以做如下事情:

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

我找到了解决办法

soap.body = {  
    #... other tags  
    "content" => {  
        "item" => ["", "", ""],  
        :attributes! => {  
            "item" => {  
                "a" => ["1", "2", "3"],  
                "b" => ["0", "0", "0"]  
            }  
        }  
    }
    #... other tags    
}  
提供了对Builder的改进支持,我建议使用它,而不是试图通过哈希强制属性,因为它更具可读性:

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

我想你需要再解释一下。试着展示你所做的以及它是如何不起作用的,人们可能会帮你解决更多问题。在问题中添加更多信息,这样其他人就不会投反对票。不,不,我需要一些东西放在soap.body中。因为我已经有了一个使用哈希的结构化xml。然后请将您当前的结构或您需要的结构添加到问题中,以便可以回答它。