2011-10-03 44 views
0

我是新来的stackoverflow和一些搜索后没有找到我的问题的答案,所以我希望有人可以帮助我。PHP - XML转换

我必须使用这个Web服务方法,它需要三个参数,一个字符串和两个xml参数。

下面是我使用的代码示例。 Web服务方法抛出异常,“方法SubmitXml的必需参数为null”。

所以我猜它没有收到第二和第三参数的任何XML。任何人都可以给我一个关于如何在这里正确使用DOM或任何其他PHP的提示?先谢谢你。

$soapClient = new SoapClient($this-SOAPURL, array('login'=>$this->account,'password'=>$this->password)); 

    $xmlstr ='<xmlbody>'; 
    $xmlstr.='<someXML>Some XML text content here!</someXML>'; 
    $xmlstr.='</xmlbody>'; 

    $dom = new DOMDocument(); 
    $dom->loadXML($xmlstr); 
    $filter = new DOMDocument(); 

    $filter->loadXML('<_ xmlns=""/>'); 
    print_r ($soapClient->SubmitXml('userIDString',$dom->saveXML(), $fil->saveXML())); 
+0

确实SoapClient的甚至有方法SubmitXml()? :)为什么不使用对象结构......或者至少是数组来发送请求......底线就是SOAP的全部内容(简单对象访问协议):)? http://www.php.net/manual/en/soapclient.soapcall.php – Catalin

+0

SubmitXml是属于Web服务本身的方法,由SoapClient :: __ getFunctions()方法返回...使用SoapClient :: __ soapCall或直接调用方法实际上是一样的,对吗? –

+0

@JoséAlbernaz Senra:是的,它与Web服务功能类似。检查你的语法,然后使用正确的变量名称。我建议你启用错误报告和最高级别的警告'error_reporting(〜0); ini_set('display_errors',1);'在脚本的顶部。 – hakre

回答

0

经过一番努力,我终于明白了。它并没有最终成为语法错误或任何东西。我在我的问题提交的代码是确定的,只是我不包装我的XML字符串中所必需的节点...类似:

$xmlstring = "<somenode>" . $xmlstring . "</somenode>"; 

,然后将其发送给函数。

谢谢大家的帮助,试图解决这个“谜”;)