SOAP リクエストにSavonを使用しており、SOAP リクエスト XML のどこかで、次のコードを生成する必要があります。
<content>
<item a="1" b="0"/>
<item a="2" b="0"/>
<item a="3" b="0"/>
</content>
これを行う最善の方法は何ですか?
SOAP リクエストにSavonを使用しており、SOAP リクエスト XML のどこかで、次のコードを生成する必要があります。
<content>
<item a="1" b="0"/>
<item a="2" b="0"/>
<item a="3" b="0"/>
</content>
これを行う最善の方法は何ですか?
私は解決策を見つけました。
soap.body = {
#... other tags
"content" => {
"item" => ["", "", ""],
:attributes! => {
"item" => {
"a" => ["1", "2", "3"],
"b" => ["0", "0", "0"]
}
}
}
#... other tags
}
Savon v0.9.7には、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
次のようなことができます。
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