2012-08-05 62 views
0

我在PHP創建SOAP客戶端:SOAP解析PHP中

$client = new SoapClient("http://xxxx.net/Service/Service.svc?wsdl"); 
$response= $client->GetHotelNugget($data); 

但我不能解析響應。我需要<a:TITLE>標記值。 SOAP客戶機的

輸出:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <s:Body> 
     <GetHotelNuggetResponse xmlns="http://tempuri.org/"> 
     <GetHotelNuggetResult xmlns:a="http://schemas.datacontract.org/2004/07/Model" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
      <a:HotelNugget> 
       <a:NUGGETNAME>Yaz Tatili Otelleri</a:NUGGETNAME> 
       <a:NUGGETORDER>10</a:NUGGETORDER> 
       <a:PARENTUNIQUECODE>AS_SOL_UST</a:PARENTUNIQUECODE> 
       <a:REWRITENUGGETNAME>yaz-tatili-otelleri</a:REWRITENUGGETNAME> 
       <a:TITLE>Yaz Tatili Otelleri</a:TITLE> 
       <a:UNIQUECODE>YTOTL</a:UNIQUECODE> 
       <a:WEBNUGGETID>306</a:WEBNUGGETID> 
      </a:HotelNugget> 
      <a:HotelNugget> 
       <a:NUGGETNAME>Ramazan Fırsatları</a:NUGGETNAME> 
       <a:NUGGETORDER>20</a:NUGGETORDER> 
       <a:PARENTUNIQUECODE>AS_SOL_UST</a:PARENTUNIQUECODE> 
       <a:REWRITENUGGETNAME>ramazan-firsatlari</a:REWRITENUGGETNAME> 
       <a:TITLE>Ramazan Fırsatları</a:TITLE> 
       <a:UNIQUECODE>RFIR</a:UNIQUECODE> 
       <a:WEBNUGGETID>308</a:WEBNUGGETID> 
      </a:HotelNugget> 
      <a:HotelNugget> 
       <a:NUGGETNAME>Ramazan Bayramı Otelleri</a:NUGGETNAME> 
       <a:NUGGETORDER>30</a:NUGGETORDER> 
       <a:PARENTUNIQUECODE>AS_SOL_UST</a:PARENTUNIQUECODE> 
       <a:REWRITENUGGETNAME>ramazan-bayrami-otelleri</a:REWRITENUGGETNAME> 
       <a:TITLE>Ramazan Bayramı Otelleri</a:TITLE> 
       <a:UNIQUECODE>RBO</a:UNIQUECODE> 
       <a:WEBNUGGETID>283</a:WEBNUGGETID> 
      </a:HotelNugget>  
     </GetHotelNuggetResult> 
     </GetHotelNuggetResponse> 
    </s:Body> 
</s:Envelope> 
+0

這看起來像XML輸出。你得到什麼'var_dump($ response)'? – hakre 2012-08-05 16:04:34

+0

var_dump return is;對象(stdClass)#2(1){[「GetHotelNuggetResult」] => object(stdClass)#3(0){}} – enginar 2012-08-05 16:07:55

+0

WSDL定義中可能缺少'GetHotelNuggetResult'? http://tempuri.org/並不是很好。 – hakre 2012-08-05 16:21:28

回答

0

嘗試下面的代碼,並檢查print_r

$xmlResp = simplexml_load_string($response); 
$jsonResp = json_encode($xmlResp); 
$arrResp = json_decode($jsonResp); 

foreach($arrResp as $k=>$v) { 
    print_r($v); 
} 

然後,您可以通過一些訪問TITLE標籤內的foreach像下面

$v['HotelNugget']['TITLE'];

+0

錯誤:類stdClass的對象無法轉換爲字符串 – enginar 2012-08-05 16:21:58