2017-04-05 7 views
-1

XML応答からOrderID,SessionIDおよびURLの値を取得しようとしています。私は初心者でお願いします。
次のコードを試しましたが、動作しません。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のためだけでなく将来の訪問者のために 。 – RiggsFolly

0

表示されるデータは文字列です。そのような文字列をsimpleXMLのようなXMLReaderに送る必要があります。次に、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

関連する問題