SOAP:返回PHP中xsd:any元素的数组
我需要根据WSDL返回SOAP调用应答。除了返回xsd:any元素外,一切正常。WSDL的一部分,我有问题(这是一个例外答案) xsd:complexType name=“数据” xsd:序列 xsd:any minOccurs=“1”maxOccurs=“无界” xsd:序列 xsd:complexType 我尝试的是: foreach($data as $name=>$value) { $object->data->any[$name] = $value; } return $object; foreach($name=>$value形式的数据){ $object->data->any[$name]=$value; } 返回$object; SOAP调用返回如下答案: ..response> -data>value1value2value3value4-/data> .../response> …响应> -数据>值1value2value3value4-/data> …/答复> 虽然在返回对象之前,可以看到该对象是按其本应的方式创建的: $object->data->any[name1] = value1 $object->data->any[name2] = value2 etc... $object->data->any[name1]=value1 $object->data->any[name2]=value2 等 但是在returnasnwer中,所有的值都被放在一个字符串中的一个返回字段中。此代码和返回代码可正确用于任何其他字段类型(例如xsd:string等) 在xsd:any类型的情况下,应该如何返回对象,以根据名称和值获得多个字段的答案 谢谢解决了这个问题 我必须为字段创建SoapVar对象 $o = new Object(); $o->field = $value; $object->data = new SoapVar($field, XSD_ANYTYPE); return $object; $o=新对象(); $o->field=$value; $object->data=newsoapvar($field,XSD_ANYTYPE); 返回$object; 谢谢这也应该有效:SOAP:返回PHP中xsd:any元素的数组,php,soap,xsd,wsdl,Php,Soap,Xsd,Wsdl,我需要根据WSDL返回SOAP调用应答。除了返回xsd:any元素外,一切正常。WSDL的一部分,我有问题(这是一个例外答案) xsd:complexType name=“数据” xsd:序列 xsd:any minOccurs=“1”maxOccurs=“无界” xsd:序列 xsd:complexType 我尝试的是: foreach($data as $name=>$value) { $object->data->any[$name] = $value; }
$object->data = new SoapVar($data, SOAP_ENC_OBJECT);
$object->data = new SoapVar($data, SOAP_ENC_OBJECT);