如何在Amazon API返回的众多ID中选择一个ID?

时间:2015-12-29 00:27:41

标签: php xml

我正在使用Amazon API,他们发送的是XML格式的响应。我正在尝试对数据进行排序,但由于我正在寻找15个不同的标签,我不确定如何解决这个问题。我知道有dom->getElementByTagName('')。我想知道如何找到所有15个结果。答复如下:

<GetMatchingProductForIdResult Id="082686322638" IdType="UPC" status="Success">
        <ns2:ListPrice>
          <ns2:Amount>9.99</ns2:Amount>
          <ns2:CurrencyCode>USD</ns2:CurrencyCode>
        </ns2:ListPrice>
    <SalesRankings>
      <SalesRank>
 <ProductCategoryId>toy_display_on_website</ProductCategoryId>
        <Rank>4150</Rank>
      </SalesRank>
      <SalesRank>
        <ProductCategoryId>2229575011</ProductCategoryId>
        <Rank>8</Rank>
      </SalesRank>
    </SalesRankings>
</GetMatchingProductForIdResult> 

重复3次。

我正在寻找:

<GetMatchingProductForIdResult Id="082686322638" IdType="UPC" status="Success">

中的Id值

<ns2:Amount></ns2:Amount>

  <SalesRank>
 <ProductCategoryId>toy_display_on_website</ProductCategoryId>
        <Rank>4150</Rank>
      </SalesRank>

如何将所有3个标签添加到我的代码中?

到目前为止,我有这个:

foreach($xml->children() as $items) { 
echo $items->GetMatchingProductForIdResult['Id'] . ','; 
echo $items->Product->SalesRankings->SalesRank->Rank . ", "; 
echo $items->Products->Product->ns2:Amount . ", "; } 

1 个答案:

答案 0 :(得分:0)

假设您特别希望Id的{​​{1}} GetMatchingProductForIdResult等于&#34; UPC&#34;,

IdType

然后$dom = new DOMDocument(); $dom->loadXML($xml); $xpath = new DOMXPath($dom); $id = $xpath->query("//GetMatchingProductForIdResult[@IdType='UPC']/@Id"); 将按要求$id