2017-07-25 57 views
0

我在這裏使用的是Amazon Affiliate API。實際上,我對這一切都相當陌生。使用simplexml_load_file()從亞馬遜附屬API的xml文件中獲取屬性

我有PHP代碼來生成產品的工作URL,但我有問題從該網址生成的XML中提取數據。我正在尋找從XML返回FormattedPrice。

下面是XML文件的例子: https://pastebin.com/HnttEVfv

這裏是我的代碼試圖拉「FormattedPrice」。下面的例子都沒有工作,只是返回空值。

旁註:$ request_url是xml文件的完整http://有效url。

$getxml = simplexml_load_file($request_url); 
$price = $getxml->ItemLookupResponse->Items->Item->ItemAttributes->ListPrice['FormattedPrice']; 

也不

$price = $getxml->ItemLookupResponse->Items->Item->ItemAttributes->ListPrice->FormatedPrice; 
+0

file_get_contents($ request_url)是否返回一些內容? –

+0

如果它確實將XML的內容作爲字符串返回,那麼您可以僅使用simplexml_load_string(file_get_contents($ request_url))。 –

+0

var_dump($ getxml);轉儲然而,當我嘗試去「FormattedPrice」我似乎無法得到的價格代碼拉XML.file_get_contents($ request_url)返回一個字符串的整個xml是;然而包裝在加載字符串不起作用。 – fullninja

回答

0

每個XML文檔具有單個 「根元素」。在你的例子中,該頂層元素是<ItemLookupResponse>

當您在SimpleXML中加載文檔時,它爲您提供的第一個對象就是該根元素。然後用->ElementName表示法訪問該元素的chlidren

因此,而不是$getxml->ItemLookupResponse->Items你應該寫$getxml->Items

+0

我仍然獲得空回報。 – fullninja