易趣API GetSellerList,解析XML响应(Ebay api GetSellerList

2019-07-30 15:57发布

我使用eBay的交易API来获取这是目前上市销售的股票。 我现在用的电话GetSellerList.I我有麻烦解析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文档看了一下,没发现什么。 我一直在使用这个(从易趣TUTS的),试图通过使用的getElementsByTagName获取XML标记的值。

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

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

现在,我希望我将能够与此再使用的foreach将它们插入到数据库创建一个数组但是当我使用这个只获得了第一个“标题”标签的价值

Im肯定那里是创建一个有“标题”的所有值的数组的方式。 所有的帮助表示赞赏。

Answer 1:

如果您发布的响应XML(只是相关部分),而不是请求,这将是比较容易回答。

你的代码将只抢到了第一个项目 - 特别是这部分:

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

相反,你会通过所有的希望环路Title元素,并提取它们的nodeValue。 这是一个出发点:

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

$titles = array();

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


文章来源: Ebay api GetSellerList, Parsing response XML