Tek bir XML dize döndüren PHP SoapClient () fonksiyonu

1 Cevap php

Ben PHP SoapClient () fonksiyonu ile zorluk yaşıyorum. SOAP isteği başarılı, ancak yanıt anahtarı "herhangi" ile tek bir XML dizesi içeren bir nesne olarak döndürülür. Örneğin:

<?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);
?>

Bu aşağıdaki çıktılar:

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>
    )
)

Ben beklediğiniz gibi sonradan, ben nesnesinin özelliklerini erişemiyor:

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

Neden döndürülen nesnenin özelliklerini içine soap yanıtı ayrıştırma PHP değil mi?

PHP 5.3.0 kullanıyorum ve SOAP sunucusu. NET çalışıyor inanıyorum duyuyorum.

1 Cevap

Şimdi bu çözmüş.

Üçüncü taraf SOAP sunucusu SOAP yanıtı içinde yuvalanmış, XML formatında veri döndürmek için tasarlanmıştır. Ben şimdi SimpleXML ile XML yanıt ayrıştırma duyuyorum.