【问题标题】:Php Soap, Dump Result as XMl FILE?Php Soap,将结果转储为 XML 文件?
【发布时间】:2011-11-01 02:59:22
【问题描述】:

我有一个 SOAP(普通 php 客户端)结果 根据我的要求 我想将结果保存为 XML 文件?但是怎么做呢?

   $result = $client->__soapCall('MYwebServices',array($params));

    $xml = simplexml_load_string($result);

    $fp = fopen("out.xml","w");
    fwrite($fp,$xml);
    fclose($fp);

【问题讨论】:

    标签: php xml file soap save


    【解决方案1】:

    如果您想获取 Web 服务返回的 XML,您应该使用 SoapClient::__getLastResponse()(以及 trace 选项)。

    $client = new SoapClient(..., array('trace' => 1));
    
    // Do your __soapCall here
    
    $xml = $client->__getLastResponse();
    
    // Work with the XML string here
    

    【讨论】:

    【解决方案2】:
    $xml->asXML("out.xml");
    

    SimpleXMLElement::asXML reference

    【讨论】:

    • 确认上述方法无效?我会得到一些命名空间吗?
    • 对不起,没听懂。如果您的 SOAP 请求成功,您可能需要检查:is_soap_fault($result)。这是is_soap_fault的手册
    【解决方案3】:

    上面的代码是不是不行,如果不试试:

    $result = $client->__soapCall('MYwebServices',array($params));
    
        $xml = new DOMDocument();
    $xml->load($result);
    $xml->save("out.xml");
    

    如果返回的不是 xml 或者 xml 格式不正确,这可能会被破坏,在这种情况下试试这个:

    $result = $client->__soapCall('MYwebServices',array($params));
        libxml_use_internal_errors(true);//load if improperly formatted
            $xml = new DOMDocument();
        if ($xml->load($result))
        {
            $xml->save("out.xml");
        }
        else {
            echo "The return data was not xml";
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多