2013-05-18 49 views
-2

我得到這個結果我在連接的腳本鏈接,鏈接在XML響應到PHP變量

<person> 
    <email-address>[email protected]</email-address> 
    <picture-url>http://m3.licdn.com/mpr/mprx/0_UiHHf6SiF4yuBerHUkfUfkshFpomUIrHMbpBf5Iy4sOYk7FecL4XTLxtdAEl42AXsho9hGzDtRBl</picture-url> 
</person> 

這是PHP調用

$xml_response = $linkedin->getProfile("~:(email-address,picture-url)"); 

如何讓它們分配到單獨的PHP變量。

+0

使用XML解析器:HTTP: //php.net/simplexml – str

+0

http://stackoverflow.com/questions/7236047/how-do-i-create-variables-from-xml-data-in-php – jimmy

回答

0

嘗試,

$xml = (array)simplexml_load_string($xml_response); 

    echo $email=$xml['email-address']; 
    echo $picture=$xml['picture-url']; 
+0

什麼是你想用的打印,然後做分配變量的值? – Fabio

+0

@法比奧,我只是做一個對象數組 – Shin

+0

你試試這個代碼? – Fabio

1

您可以加載XML作爲字符串simplexml_load_string,然後循環中它得到的所有數據

$xml = simplexml_load_string($xml_response); 
foreach($xml as $key => $val) 
{ 
    echo "$key=>$val<br>" . "\n"; 
} 

這將輸出

email-address=>[email protected] 
picture-url=>http://m3.licdn.com/mpr/mprx/0_UiHHf6SiF4yuBerHUkfUfkshFpomUIrHMbpBf5Iy4sOYk7FecL4XTLxtdAEl42AXsho9hGzDtRBl 

Live sample

0
$xml = simplexml_load_string($linkedin->getProfile("~:(email-address,picture-url)")); 

echo $xml->{'email-address'}[0] . "<br />"; 
echo $xml->{'picture-url'}[0]; 

simplexml不喜歡-在節點名稱,因此使用$xml->{'email-address'}而不是$xml->email-address。兩個節點上

使用指數[0],爲了以防萬一,如果有一天你simplexml對象將包含多個<person>節點...

看到它的工作:http://codepad.viper-7.com/dQQ6sa