【问题标题】:PHP SoapClient() function returning a single XML stringPHP SoapClient() 函数返回单个 XML 字符串
【发布时间】:2010-03-16 18:21:57
【问题描述】:

我在使用 PHP SoapClient() 函数时遇到了困难。 SOAP 请求成功,但响应作为一个对象返回,该对象包含一个带有键“any”的 XML 字符串。例如:

<?php
$params = array('strUsername' => 'Test',
                'strPassword' => 'Test');

$client=new SoapClient('http://www.example.com/webservice.asmx?wsdl',
                       array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$result = $client->strExampleCall($params);
print_r($result);
?>

这会输出以下内容:

stdClass Object
(
    [strExampleCallResult] => stdClass Object
    (
        [any] => <Response xmlns="" release="1.0.0" environment="Production" lang="en-GB"><ApplicationArea><Sender><SenderId>0</SenderId><ReferenceId>0</ReferenceId></Sender><Destination><DestinationId>1</DestinationId></Destination></ApplicationArea><DataArea><Result>1</Result></DataArea></Response>
    )
)

随后,我无法按预期访问对象的属性:

echo $result->strExampleCallResult->Response->DataArea->Result;

为什么 PHP 不将 SOAP 响应解析为返回对象的属性?

我使用的是 PHP 5.3.0,并且相信 SOAP 服务器正在运行 .NET。

【问题讨论】:

  • 朋友,你发现问题了吗,我的wsdl也有同样的问题。

标签: php soap soap-client


【解决方案1】:

我现在已经解决了这个问题。

第三方 SOAP 服务器旨在以 XML 格式返回数据,嵌套在 SOAP 响应中。我现在正在使用 SimpleXML 解析 XML 响应。

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 2014-11-30
    相关资源
    最近更新 更多