2011-12-26 11 views
0

私は今日達成できたいくつかの画期的な進歩によって質問を更新しています。私はget_object_varsを使用しました。 このコードは、繰り返し処理しようとしている値を出力することができました。PHPの配列に返されたWebサービスを解析する方法

  $fileStatus = $ServicesLink->GetFileStatus(array('Ticket'=>$ticket,'ProjectID'=>$pidobtained,'SourceLanguageID'=> "", 'TargetLanguageID'=> "",'FileID'=> "",'Filename'=>"")); 
      $arrayPid = array(); 

      foreach($fileStatus->GetFileStatusResult->FileStatuses->FileStatus as $fileStatusObtained) 
      { 
       $arrayPid = get_object_vars($fileStatusObtained); 
       //$arrayPid =$fileStatusObtained ; 
      } 

      echo is_array($arrayPid) ? 'Array' : 'not an Array'; 
      echo "<br>"; 

      echo("Count of array ".count($arrayPid)); 
      echo "<br>"; 
      print_r('<pre>'. print_r($arrayPid) .'</pre>'); 

このhttp://www.image-share.com/ijpg-1163-165.htmlは、結果として見たものです。

このオブジェクトは、その中にオブジェクト(FileID、FileNameなど)が必要です。エラーメッセージが表示されますが、出力が表示されます。私が使用したコードは、この私は次の出力http://www.image-share.com/ijpg-1163-166.htmlを見ました。この結果

$fileStatus = $ServicesLink->GetFileStatus(array('Ticket'=>$ticket,'ProjectID'=>$pidobtained,'SourceLanguageID'=> "", 'TargetLanguageID'=> "",'FileID'=> "",'Filename'=>"")); 
      $arrayPid = array(); 

      foreach($fileStatus->GetFileStatusResult->FileStatuses->FileStatus as $fileStatusObtained) 
      { 
       $arrayPid = get_object_vars($fileStatusObtained); 
       //$arrayPid =$fileStatusObtained ; 
      } 

      echo is_array($arrayPid) ? 'Array' : 'not an Array'; 
      echo "<br>"; 

      echo("Count of array ".count($arrayPid)); 
      echo "<br>"; 
      //print_r('<pre>'. print_r($arrayPid) .'</pre>'); 


      foreach($arrayPid as $val) { 
       echo ($val); 
       echo "<br>"; 
      } 


     } 

(上からだけでは非常にマイナーな変更が。私はforeachのを使用)でした。 インデックス番号1がオブジェクトを占有するため、文字列変換のエラーが発生します。 上記のコードでforeachの代わりにForループを使用すると、値を印刷できません。 私が試した:

  for($i=0;$i<(count($arrayPid));$i+=1) 
      { 
       echo($arrayPid[$i]); 
      } 

しかし、これは何も印刷しないだろうし。

私はその配列$ arrayPid内の値を反復して取得できるように助けてくれますか?

あなたの提案、意見、疑問を同じにしたいと思います。 私はイメージシェアを使用していることを申し訳なく思っていますが、それが私のスクリーンを共有できる唯一の方法です。それを使用する

おかげ アンジー

+0

コードのあまり! – emaillenin

+0

あなたは石鹸要求をするためにどのライブラリを使用していますか? – hakre

+0

私はそのようなSoapライブラリを使用していません。私はちょうどURLを使用して呼び出します。このコードは機能します。 GetSourceLanguages用のものが結果を提供します。私のクエリは配列$ fileStatusの値を抽出する方法にもっと向けられています。** GetSourceLanguagesResult-> Language - > Language in $ language **は** GetFileStatusResult-> FileStatuses-> FileStatusを$ fileStatusObtainedとして**動作します。ではない。私は、Webサービスのxmlタグが正しく解析されているかどうかを確認しようとしています。 @emillenin私のクエリがもう少し明確になることを願っています。ありがとう –

答えて

0

正しい方法は次のとおりです。

 foreach($fileStatus->GetFileStatusResult->FileStatuses->FileStatus as $fileStatusObtained) 
      { 
       $arrayPid = get_object_vars($fileStatusObtained); 
       //print_r($fileStatusObtained->FileID);     
       $fileId [] = $fileStatusObtained->FileID; 
               ... 
               } 
関連する問題