xml - SOAP::Lite Generating <c-gensym .. > 我该如何摆脱它?

标签 xml perl soap

这是我认为相关的 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',
        attr => { foo => '0' },
        value => \SOAP::Data->new(
            name => 'foo',
            value => 1,
        ),
     ),
);

另见 http://perlmonks.com/?node_id=906383

关于xml - SOAP::Lite Generating <c-gensym .. > 我该如何摆脱它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6986679/

相关文章:

perl - 如何使用 Mail::Sender 发送没有 "to"地址的电子邮件?

ruby - Savon 2.1.0 基本身份验证无法正常工作

c# - 如何在 .net 中调用没有 wsdl 的 web 服务

c# - 强制在来自 NET Web 服务代理类的 SOAP 请求中包含默认值属性属性

php - 包装一组 XML 节点

ruby - XInclude 包含元素的命名空间

perl - 如何在 perl 中调用 unix

python - 属性错误 : 'float' object has no attribute 'get'

javascript - 修复从两个 JS 文件附加到 HTML 的 'onchange' 行为

perl - 如何根据另一个哈希的键/值删除[子]哈希?