2

私はwsdlファイルを使用しており、プロセス全体からかなり多くのことを学んでいます。

SoapClientをインスタンス化しています:

$webservice = new SoapClient("mainwsdl.wsdl");
var_dump($webservice->AccountsGetXML()); 

以下は応答ですが、データの解析はまだ少し新しいです。

object(stdClass)#2 (3) {
  ["AccountsGetXMLResult"]=>
  object(stdClass)#3 (1) {
    ["any"]=>
    string(391) "<AccountsWSDS xmlns=""><ERRORS><ERROR_ID>1</ERROR_ID><TABLE_NAME>Accounts</TABLE_NAME><TABLE_ID>NoID</TABLE_ID><ROW_ID>-1</ROW_ID><COLUMN_ID>EXCEPTION</COLUMN_ID><ERROR_TYPE>E</ERROR_TYPE><ERROR_CODE>0</ERROR_CODE><ERROR_TEXT>Error connecting to database - please contact ABC Customer Services.  Msg: Object reference not set to an instance of an object.</ERROR_TEXT></ERRORS></AccountsWSDS>"
  }
  ["rowCount"]=>
  NULL
  ["pageCount"]=>
  NULL
}

私はこれまでobject(stdClass)応答で遊んだことがありません。または私がそれを忘れていた場合。

特定の情報については["AccountsGetXMLResult"]を解析する必要があると思いますが、["rowCount"]と["pageCount"]も解析する必要があります。

#2(3)が何なのか混乱しています。

とにかく、これがデータを解析する私の試みです。私はAccountsGetXMLResultから始めました:

echo $webservice->AccountsGetXMLResult;

これが私が戻ってきたものです。
PHPの通知:未定義のプロパティ:23行目の/apache/test.phpにあるSoapClient :: $AccountsGetXMLResult

ですから、明らかに私は応答を分析するのに助けを必要としています。

4

2 に答える 2

1

$webservice->AccountsGetXML() stdClassvardumpに表示されるプロパティを持つタイプのオブジェクトを返します。stdClassは、独自の事前定義されたプロパティやメソッドを持たない単なる「空のプレースホルダークラス」です。表示されるプロパティにアクセスするには、次の戻り値で作業し$webservice->AccountsGetXML()ます。

$obj = $webservice->AccountsGetXML();
var_dump($obj->AccountsGetXMLResult);
var_dump($obj->AccountsGetXMLResult->any);

これも次のように機能します。

echo $webservice->AccountsGetXML()->AccountsGetXMLResult->any;
于 2012-05-22T01:16:40.670 に答える