2012-07-29 107 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