在PHP中,通过使用SoapServer类,我可以创建响应消息。
是否可以在响应中将属性设置为body标记?
PHP代码
ini_set( "soap.wsdl_cache_enabled", "0");
$server = new SoapServer('myWsdl.wsdl');
$server->addFunction("GetDetails");
$server->handle();目前的成果:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<ns1:GetDetailsResponse/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>预期成果:
<SOAP-ENV:Body Id="some_id">发布于 2014-08-17 10:10:00
当然,您可以尝试一些类似以下内容的内容:
ini_set( "soap.wsdl_cache_enabled", "0");
$server = new SoapServer('myWsdl.wsdl');
$server->addFunction("GetDetails");
ob_start();
$server->handle();
$soap = ob_get_contents();
ob_end_clean();
$soap = str_replace("<SOAP-ENV:Body>", '<SOAP-ENV:Body Id="some_id">', $soap);
$length = strlen($soap);
header("Content-Length: ".$length);
echo $soap;当然,如果str_replace()让您感到有点脏,您可以将$soap加载为DOMDocument,并在那里对其进行操作。
https://stackoverflow.com/questions/25347964
复制相似问题