如何使用Method将XML放入我的SoapClient调用中

时间:2014-01-06 13:00:16

标签: php xml soap

我已经生成了一些保存到文件中的XML。

Dummy_Order.xml

在下面的代码中,我想打开XML并在方法'ImpOrders'

中使用它

这是我的代码

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');

$proxy = new SoapClient('http://soapclient/wsdl/Web?wsdl', array ('trace' => 1));

if (file_exists('Dummy_Order.xml')) {
    $xml = file_get_contents('Dummy_Order.xml');
} else {
  exit('Failed to open XML.');
}

$xmlstring = new SimpleXMLElement($xml);

$result = $proxy->ImportOrders($xmlstring);

var_dump($result);
echo "REQUEST:\n" . $proxy->__getLastRequest() . "\n";
?>

我在$ 0导入的0结果中获得了响应。所以我然后做了getLastRequest()并且它添加了Method中的代码但没有添加我的XML。它希望我的XML在一个字符串中 - 它当前所处的并且不是在抱怨它(如果我使用它就会呻吟 - &gt; asXML)。

我试过了

$result = $proxy->ImportOrders();

$result = $proxy->ImportOrders($xmlstring);

两者都在_getLastRequest中显示相同的结果,这让我相信我的字符串没有被插入。

当我使用_getFunctions检查函数时,它提供了这个...的信息。

ImportResult ImportOrders(string $Orders)

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

好的,所以我解决了。我需要做的就是将我的答案包装在&lt;&lt;

如下所示。

$teststring = <<<XML
$xml
XML;

$result = $proxy->ImportOrders($teststring);

希望这可以帮助其他人使用PHP,SoapClient和XML。