我使用 savon 2.2版来调用一些SOAP服务。对于简单的服务,一切正常。但是,一个服务具有复杂的结构,如下例所示,每个组都有重复组和属性:
function selectHandler() {
var selectedItem = chart.getSelection();
if (selectedItem) {
console.log(selectedItem);
}
}
google.visualization.events.addListener(chart, 'select', selectHandler);
我当前的消息如下:
<sch:RequestControl>
<sch:requestID>6989668868</sch:requestID>
</sch:RequestControl>
<sch:InquiryParam>
<sch:crmParam name="AccountNumber">1234567</sch:crmParam>
<sch:crmParam name="History">1</sch:crmParam>
</sch:InquiryParam>
以上是使用这个逻辑产生的:
<RequestControl>
<requestID>6989668868</requestID>
</RequestControl>
<InquiryParam>
<crmParam>1234567</crmParam>
<attributes>
<crmParam>
<name>AccountNumber</name>
</crmParam>
</attributes>
</InquiryParam>
<InquiryParam>
<crmParam>1</crmParam>
<attributes>
<crmParam>
<name>History</name>
</crmParam>
</attributes>
</InquiryParam>
我已经尝试使用基于savon和gyoku文档的 message = { :RequestControl =>
{ :requestID => 6989668868 },
:InquiryParam => [
{ :crmParam => { :content! => @account_number } ,
:attributes => { "crmParam" => {"name" => "AccountNumber"} } },
{ :crmParam => { :content! => @history } ,
:attributes => { "crmParam" => {"name" => "History"} } } ]
}
和类似的各种组合,但是在将XML格式化为示例时遇到了困难。我知道我可以通过将消息分配给:crmParam => { :content! => @account_number, :attributes => {'name'=>'AccountNumber'} }
来强制消息,但这使得很难看到正在发生的事情。
有人可以建议修复xml
代码中的属性吗?
答案 0 :(得分:0)
我不确定Savon是否按照您的意愿处理Ruby数组,但以下脚本可以让您更好地了解自己可以做什么。
nil