2012-10-23 36 views
1

我在寫一段PHP來使用web服務。 我使用的是這樣的:從PHP中讀取SOAPHeader中的值

$client = new SoapClient("http://somewebservicesmx?WSDL", array('trace' => 1)); 
$session = $client->SomeFuncion(); 

...和工作的罰款。

但是這個webservice在第一次調用中返回肥皂標題中的重要數據。

我想從頭文件中讀取這些值,並試着用simplexml_load_string,它只是返回空的。 也試圖與:

$doc = new DOMDocument(); 
$doc->loadXML($soapLastResponse); 
$value = $doc->getElementsByTagName("somenode"); 
$value = $value->item(0)->nodeValue; 

這似乎是工作,但我不知道是否有一個「正確的方式」來實現這一目標。 我不知道是否有一些函數可以在不使用DOMDocument的情況下從頭文件中獲得值。

回答

2

我認爲這是你在找什麼?

$soapClient->__getLastResponseHeaders(); 

它要求'trace'=>trueSoapClient

http://www.php.net/manual/en/soapclient.getlastresponseheaders.php

編輯的建設:我的困惑 - 推薦SimpleXMLElement

+0

我的$ soapLastResponse變量包含SoapClient的響應 - > __ getLastResponseHeaders()已經! ;)我一直在尋找替代使用DOMDocument() –

+0

啊哈!那麼我會推薦SimpleXmlELement()。 http://php.net/manual/en/class.simplexmlelement.php正如其名稱所示,簡單! –