这个问题已被多次提出,但目前还没有令人信服的答案。我正在尝试生成如下所示的xml:
<parameters>
<createUser version='3.0'>
<name>Batman</name>
</createUser>
</parameters>
我的代码是:
$createUser = new \stdClass();
$createUser->version = '3.0';
$createUser->name = 'Batman';
$parameters->createUser = new \SoapVar($createUser, SOAP_ENC_OBJECT);
$soapRequest = new \SoapVar($parameters,SOAP_ENC_OBJECT,
NULL, $typeNamespace, 'createUser');
$response = $soapClient->__soapCall('submit',
array('parameters' => $soapRequest));
当然,我得到的回应是:
<parameters>
<createUser>
<version>3.0</version>
<name>Batman</name>
</createUser>
</parameters>
我不知道为什么Soapvar没有提供指定属性的方法。这个帖子How to add attributes to soapVars给出的答案似乎不起作用。问题似乎在做了很多轮:
1:PHP SoapVar Object Attribute?
但还没有具体的答案。有谁知道完成这项工作的正确方法?