2012-07-29 108 views
0

我正在使用eBay交易API獲取當前列出的賣家股票。我正在使用調用GetSellerList.I在解析XML然後插入網站商店時遇到問題。Ebay api GetSellerList,解析響應XML

這是xml請求。

<GetSellerListRequest xmlns='urn:ebay:apis:eBLBaseComponents'> 

<UserID>".$user_id."</UserID> 

<DetailLevel>ReturnAll</DetailLevel> 
<ErrorLanguage>RFC 3066</ErrorLanguage> 
<WarningLevel>Low</WarningLevel> 
<Version>".$compat_level."</Version> 

<RequesterCredentials> 
    <eBayAuthToken>".$auth_token."</eBayAuthToken> 
</RequesterCredentials> 

<StartTimeFrom>2012-06-12T23:35:27.000Z</StartTimeFrom> 
<StartTimeTo>2012-08-30T23:35:27.000Z</StartTimeTo> 

<Pagination> 
    <EntriesPerPage>200</EntriesPerPage> 
</Pagination> 

<OutputSelector>ItemArray.Item.Title</OutputSelector> 
<OutputSelector>ItemArray.Item.Description</OutputSelector> 
<OutputSelector>ItemArray.Item.BuyItNowPrice</OutputSelector> 
<OutputSelector>ItemArray.Item.Quantity</OutputSelector> 

</GetSellerListRequest> 

我不是最好的,使用PHP,我仍然在學習,所以我必須通過W3Schools的和PHP文檔看了一下,沒發現什麼。我一直在使用這個(關閉ebay tuts)嘗試使用getElementsByTagName來獲取xml標籤的值。

$dom = new DOMDocument(); 
$dom->loadXML($response); 

$titles = $dom->getElementsByTagName('Title')->length > 0 ? $dom->getElementsByTagName('Title')->item(0)->nodeValue : ''; 

現在,我希望我將能夠與此再使用的foreach將它們插入到數據庫創建一個數組但是當我使用這一點,只得到了第一個「標題」標籤的價值

我確定有一種方法可以創建一個數組,其中包含'標題'的所有值。 所有幫助表示讚賞。

回答

2

如果您發佈了響應XML(只是相關部分)而不是請求,這將更容易回答。

你只搶到第一項的代碼 - 特別是這部分:通過所有Title元素

$dom->getElementsByTagName('Title')->item(0)->nodeValue 

相反,你要循環,並提取它們的nodeValue。這是一個起點:

$dom = new DOMDocument(); 
$dom->loadXML($response); 
$title_nodes = $dom->getElementsByTagName('Title'); 

$titles = array(); 

foreach ($title_nodes as $node) { 
    $titles[] = $node->nodeValue; 
} 
+0

謝謝我添加到您的代碼,並得到它的工作。 – Ace 2012-07-30 13:20:23