脚本宝典收集整理的这篇文章主要介绍了php – 如何定义SoapVar命名空间?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<CredentialsHeader XMlns="http://www.url.COM/Services/P24ListingService11" <EMail>ricky@email.net</EMail> <Password>password</Password> </CredentialsHeader>
$client = new SoapClient("https://exdev.www.example.com/Services/example.asmx?WSDL",array( "trace" => 1,"exceptions" => 0,"cache_wsdl" => 0,'soap_version' => SOAP_1_1 ) ); $CredentialObject = new SoapVAR(array('EMail' => 'ricky@email.net','Password' => 'password'),SOAP_ENC_OBJECT);
哪个产生:
<?xML version="1.0" encoding="UTF-8"?> <SOAP-env:EnveloPE xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.example.com/Services/Example"> <SOAP-ENV:Header> <ns1:CredentialsHeader> <EMail>ricky@email.net</EMail> <Password>password</Password> </ns1:CredentialsHeader> </SOAP-ENV:Header> <SOAP-ENV:Body> <ns1:EchoAuthenticated/> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
所有我需要做的是阻止它使用ns1,并实际上在节点中定义xmlns,如下所示:
<CredentialsHeader xmlns="http://www.example.com/Services/Example"> <EMail>ricky@email.net</EMail> <Password>password</Password> </CredentialsHeader>
$CredentialObjectXML = '<CredentialsHeader xmlns="http://www.example.com/Services/Example"> <EMail>'.$UserName.'</EMail> <Password>'.$Password.'</Password> </CredentialsHeader>'; $CredentialObject = new Soapvar($CredentialObjectXML,XSD_ANYXML);
这样,您可以直接使用XSD_ANYXML类型的XML.
希望这将解决您的问题.
以上是脚本宝典为你收集整理的php – 如何定义SoapVar命名空间?全部内容,希望文章能够帮你解决php – 如何定义SoapVar命名空间?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。