代码之家  ›  专栏  ›  技术社区  ›  Pedro Monteiro

PHP SOAP将元素发送为xsi:type=“xsd:boolean”

  •  2
  • Pedro Monteiro  · 技术社区  · 10 年前

    我在互联网上搜索了一种将xsi:type=“xsd:boolean”添加到特定元素的方法,但没有成功。。我正在为PHP使用肥皂,你能帮我吗?

    $paramsBody = array("Parametros" => array('Parametro' => array("Name" => 'Todos', 'Value' => new SOAPVar('false', XSD_ANYTYPE, null, null, null, 'http://microsoft.com/webservices/'))));
    
    $this->client->$function($paramsBody);
    

    XML输出:

       <env:Body>
          <ns1:Export>
             <ns1:Parametros>
                <ns1:Parametro>
                   <ns1:Name>Todos</ns1:Name>
                   <ns1:Value>false</ns1:Value>
                </ns1:Parametro>
             </ns1:Parametros>
          </ns1:Export>
       </env:Body>
    

    应该怎么。。。

       <env:Body>
          <ns1:Export>
             <ns1:Parametros>
                <ns1:Parametro>
                   <ns1:Name>Todos</ns1:Name>
                   <ns1:Value xsi:type="xsd:boolean">false</ns1:Value>
                </ns1:Parametro>
             </ns1:Parametros>
          </ns1:Export>
       </env:Body>
    
    1 回复  |  直到 10 年前
        1
  •  4
  •   Pedro Monteiro    10 年前

    我找到了SoapVar对象的解决方案!

    array("Parametros" => array('Parametro' => array("Name" => 'Todos', "Value" => new SoapVar('true', XSD_STRING, 'xsd:boolean'))))