2017-04-05 47 views
-1

我試圖從XML響應中檢索OrderID,SessionIDURL值。我是一個新手請。
我試過下面的代碼,但沒有工作。從PHP中檢索XML中的數據值

$orderID = $response->TKKPG->Response->Operation->Order->OrderID; 
$sessionID = $response->TKKPG->Response->Operation->SessionID; 
$URL = $response->TKKPG->Response->Operation->Order->SessionID; 

echo $orderID; 
echo $sessionID; 
echo $URL; 

但是這個接縫沒有工作。

見下

$response = "<TKKPG><Response> 
    <Operation>CreateOrder</Operation> 
    <Status>00</Status> 
    <Order> 
     <OrderID>83916</OrderID> 
     <SessionID>6C94CDCB27E9EF48DA9B94119887E681</SessionID> 
     <URL>returnpage.php</URL> 
    </Order> 
    </Response></TKKPG>" 
+2

'$ response'是一個字符串。你有沒有餵它到XMLReader? – RiggsFolly

回答

0

的XML試試這個:

$xml=simplexml_load_string($response) or die("Error: Cannot create object"); 
print_r($xml); 

使用simplexml_load_file - 解析XML文件到一個對象。所以你可以很容易地將數據獲取到對象中。

+1

OP爲什麼要「嘗試此代碼」?一個**好的答案**總是會解釋做了什麼以及爲什麼這樣做, 不僅適用於OP,而且適用於SO的未來訪問者,可能會發現此問題並正在閱讀您的答案。 – RiggsFolly

0

您顯示的數據是一個字符串。您必須將該字符串提供給XMLReader,如simpleXML。然後將XML字符串中的項目轉換爲PHP對象,並且像這樣處理對象。

$response= "<TKKPG><Response><Operation>CreateOrder</Operation><Status>00</Status><Order><OrderID>83916</OrderID><SessionID>6C94CDCB27E9EF48DA9B94119887E681</SessionID><URL>returnpage.php</URL></Order></Response></TKKPG>"; 

$xml = new SimpleXMLElement($response); 

print_r($xml); 

echo $xml->Response->Order->OrderID . PHP_EOL; 
echo $xml->Response->Order->SessionID . PHP_EOL; 
echo $xml->Response->Order->URL . PHP_EOL; 

結果

SimpleXMLElement Object 
(
    [Response] => SimpleXMLElement Object 
     (
      [Operation] => CreateOrder 
      [Status] => 00 
      [Order] => SimpleXMLElement Object 
       (
        [OrderID] => 83916 
        [SessionID] => 6C94CDCB27E9EF48DA9B94119887E681 
        [URL] => returnpage.php 
       ) 

     ) 

) 
83916 
6C94CDCB27E9EF48DA9B94119887E681 
returnpage.php 

參考SimpleXML in the manual

+0

非常感謝。它工作完美,我得到了理想的結果。 – user7787903

+0

然後正常的過程是http://stackoverflow.com/help/someone-answers – RiggsFolly