如何更改Soapenv:Envelope参数:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ejb="http://ejb.gateway.ebpp.fawryis.com/"
xmlns:ns3678="http://tempuri.org">
:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ejb="http://ejb.gateway.ebpp.fawryis.com/">
如何设置nussoap客户端Soapenv,使其与第二种格式相同?
在每个元素中都有xmlns empty属性:
<process xmlns="http://ejb.gateway.ebpp.fawryis.com/">
<arg0 xmlns=""><Request xmlns="">
如何删除这些xmlns属性?
下面是我的代码:
$client = new nusoap_client($wsdl_path, TRUE);
$client->namespaces = array(
'SOAP-ENV'=>"http://schemas.xmlsoap.org/soap/envelope/",
'ejb'=>"http://ejb.gateway.ebpp.fawryis.com/"
);
$parameters = array(//the parameters );
$result = $client->call("process", $parameters);
谢谢
我知道您可以fork nussoap项目并自定义nusoap.php
源代码以返回您想要的内容。但请注意,有些人告诉我们,我们不需要麻烦这个前缀SOAP-ENV
。如果您不关心序列化的是哪一个(soap - env还是soap前缀),请继续使用原始的nussoap项目。请记住输入相同的命名空间
这里有一些额外的信息:
您可以使用任何字符串作为名称空间前缀,只要它映射到适当的名称空间名称。规格的原因告诉我们符号约定的麻烦是前缀名称(例如SOAP-ENV)不规范。
来源:SOAP-ENV vs. soapenv
…只要soap和soap - env引用相同的名称空间URI,那么一切都会好的。
来源:soap - env: vs. soap:Envelope
…可以是任何允许的字符串-这对XML解析器来说无关紧要只要给出了正确的命名空间URL。
来源:SOAP信封命名空间