如何更改我的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/">
如何设置nusoap客户端Soapenv,以便它可以与第二种格式相同?
同样在每个元素中都有xmlns空属性:
<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);
谢谢
答案 0 :(得分:0)
我知道您可以分叉Nusoap项目并自定义nusoap.php
源代码以准确返回您所要求的内容。但请注意,有些人告诉我们,我们不需要打扰这个前缀SOAP-ENV
。如果您不关心序列化哪一个(SOAP-ENV或soap前缀),请继续使用原始的nusoap项目。请记住输入相同的命名空间。
这里有一些额外的信息:
您可以使用任何您喜欢的字符串作为命名空间前缀,只要 它映射到适当的命名空间名称。规范之所以如此 告诉我们符号约定是那个前缀 名称(例如,SOAP-ENV)不是规范性的。
...只要soap和SOAP-ENV引用相同的名称空间URI,那么 一切都会好的。
来源:SOAP-ENV: vs. soap:Envelope
...可以是任何允许的字符串 - 它与XML解析器无关 只要给出了正确的命名空间URL。