【问题标题】:PHP - XML conversionPHP - XML 转换
【发布时间】:2011-11-29 20:13:49
【问题描述】:

我是stackoverflow的新手,经过一番搜索后没有找到我的问题的答案,所以我希望有人可以帮助我。

我必须使用这个接受三个参数、一个字符串和两个 xml 参数的 Web 服务方法。

下面是我正在使用的代码示例。 Web 服务方法引发异常,“SubmitXml 方法的必需参数为空。”

所以我猜它在第二个和第三个参数上没有收到任何 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()));

【问题讨论】:

  • SoapClient 是否还有 SubmitXml() 方法? :) 为什么不使用对象结构...或至少使用数组来发送请求...底线就是 SOAP 的全部意义(简单对象访问协议):) ? php.net/manual/en/soapclient.soapcall.php
  • SubmitXml 是属于 Web 服务本身的方法,由 SoapClient::__getFunctions() 方法返回...使用 SoapClient::__soapCall 或直接调用该方法实际上是相同的,对吧?
  • @José Albernaz Senra:是的,有点像它是一个网络服务功能。但是,请检查您的语法并确保您使用了正确的变量名。我建议您在脚本顶部启用错误报告和最高级别的警告error_reporting(~0); ini_set('display_errors', 1);
  • @hakre:谢谢 hakre... 启用了错误报告,并且确实收到了 webservice 方法引发的错误。我的问题是 $dom->saveXML() 会返回一个有效的 XML 供该方法使用吗?

标签: php xml soap


【解决方案1】:

经过一番挣扎,我终于明白了。它最终没有成为语法错误或任何东西。我在我的问题中提供的代码是可以的,只是我没有将我的 XML 字符串包装在所需的节点中......类似于:

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

然后将其发送给函数。

感谢大家帮助解决这个“谜团”;)

【讨论】:

    猜你喜欢
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 2015-09-03
    相关资源
    最近更新 更多