Php 带xml字符串参数的soap请求

Php 带xml字符串参数的soap请求,php,xml,soap,Php,Xml,Soap,可能很少有类似的博客,但我不能解决这个问题。我将xml转换为字符串,并尝试将其作为参数传递。然后我犯了一个错误。我尝试使用cdata解决它,但它并没有解决我的问题。最后,我尝试使用SoapVar并得到以下错误 我的代码: 错误 格式化程序在尝试反序列化 消息:反序列化操作的请求消息正文时出错 “AddNewContactBestRent”。XML前不能出现任何字符 公告第2行,位置1385 试一试 您将一个数组包装在一个数组中。因为$params var已经是一个数组。但您必须将带有标量数据的k

可能很少有类似的博客,但我不能解决这个问题。我将xml转换为字符串,并尝试将其作为参数传递。然后我犯了一个错误。我尝试使用cdata解决它,但它并没有解决我的问题。最后,我尝试使用SoapVar并得到以下错误

我的代码:

错误

格式化程序在尝试反序列化 消息:反序列化操作的请求消息正文时出错 “AddNewContactBestRent”。XML前不能出现任何字符 公告第2行,位置1385

试一试

您将一个数组包装在一个数组中。因为$params var已经是一个数组。但您必须将带有标量数据的key=>value数组作为第二个参数传递给方法


尽管这并不能解决您的SoapVar问题。但是应该让您的SoapClient::u soapCall方法调用工作。

不,这并没有解决我的问题。现在错误是命名空间中的结束元素“Body”。从命名空间中找到元素“param1”
$survey =   $domtree->saveXML();    
$soapVar = new SoapVar($survey,XSD_ANYXML); 
$params = array(>        
    "ManagerID" => 0,
    "Reg_SalesCenterID" => $id,
    "surveys" => $soapVar,
    "SalesCenterList" => $SalesCenter);

try {
    $response = $soapClient->__soapCall('AddNewContact', array($params));
}catch (SoapFault $fault) {
    echo 'Request : <br/><xmp>',
    $soapClient->__getLastRequest(),
    '</xmp><br/><br/> Error Message : <br/>',
    $fault->getMessage();
}
$response = $soapClient->__soapCall('AddNewContact', $params);