0

現在上場している売り手の株式を取得するために ebay 取引 API を使用しています。GetSellerList 呼び出しを使用しています。xml の解析に問題があり、それを Web サイト ショップに挿入します。

これは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が得意ではありません. getElementsByTagNameを使用してxmlタグの値を取得しようとするために、これを(eBayのtutsから)使用しています。

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

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

これで配列を作成し、 foreach を使用してそれらをデータベースに挿入できることを望んでいましたが、これを使用すると、最初の「タイトル」タグの値のみが取得されます

「タイトル」のすべての値を含む配列を作成する方法があると確信しています。すべての助けに感謝します。

4

1 に答える 1

2

これは、リクエストではなくレスポンス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;
}
于 2012-07-30T02:02:25.970 に答える