这就是我认为相关的SOAP :: Lite代码
my $req3 = SOAP::Lite->new( readable => 1,autotype => 0,proxy => 'https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor',); $req3->requestMessage( \SOAP::Data->new( name => 'item',attr => { foo => '0' },value => \SOAP::Data->new( name => 'foo',value => 1,),);
它正在生成这个XML
<?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <requestMessage> <c-gensym9> <item foo="0"> <foo>1</foo> </item> </c-gensym9> </requestMessage> </soap:Body>
我无法弄清楚为什么< c-gensym9 />嵌套在< requestMessage>内但我不需要在那里.任何人都可以解释为什么它在那里?以及如何重写代码以便它不是?
看马云,没有gensym
$req3->requestMessage( ## \SOAP::Data->new( ## this makes gensym SOAP::Data->new( ## no refref,no gensym name => 'item',);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。