2017-08-07 4 views
0

Hat jemand bei der Verwendung von Amazon API andere XML-Tag/Element-Ergebnisse erlebt? Wenn ja, wie kann ich die gewünschten Informationen erhalten, wenn sie sich von Buch zu Buch unterscheiden?Warum erhalte ich bei der Suche nach verschiedenen Büchern in der Amazon Product Advertising API unterschiedliche Tags/Elemente?

Fall: Ich versuche, die Anzahl der Seiten der Bücher zu bekommen, die ich oben bin auf der Suche. In den meisten Fällen funktioniert es in Ordnung, mit den folgenden XML holen:

$base->Items->Item->ItemAttributes->NumberOfPages 

Allerdings, wenn ich Buch mit ISBN 0743234804 gesucht, würde ich noch die folgenden erhalten Sie die Seitenzahl abfragen:

$base->Items->Item[1]->ItemAttributes->NumberOfPages 

Das ist ziemlich unzuverlässig, besonders wenn es andere Fälle gibt. Wie gehst du zu diesem Problem?

** Aktualisiert die Frage - geändert, um die Abfrage, die die korrekte Seiteninformationen **

+0

Ist das nicht '$ Base-> Artikel-> Item- > ItemAttributes ... 'das gleiche wie' $ base-> Items-> Item [0] -> ItemAttributes ... '? Wenn dies der Fall ist, sollte die Frage beantwortbar sein, indem Sie das XML untersuchen, um festzustellen, warum Sie manchmal das erste Elementelement benötigen und andere Male, wenn Sie das zweite Element benötigen. Sie sollten dann in der Lage sein, den richtigen Ort zu finden, um programmatisch zu suchen. –

Antwort

0

Offenbar produzieren würde, kann es mehrere verschiedene Arten des gleichen Buches sein (? Hardcover/Softcover/kindle) und damit Amazon bieten mehrere Tags von.

Das Problem besteht darin, dass einige dieser Tags nicht alle ItemAttributes enthalten. Aber eine davon erlaubt die NumberOfPages, die ich wollte.

Lösung: Gerade Schleife durch die Tags und überprüfen, ob es das NumberOfPages Element hat und es dann zu einer Variablen nicht zuweisen es:

for ($i=0; $i < 7; $i++) { 
    if(@$base->Items->children()[$i]->ItemAttributes->NumberOfPages){ 
     $amazonprice = @$base->Items->children()[$i]->ItemAttributes->NumberOfPages; 
    } 
} 
Verwandte Themen