2010-06-17 6 views
0

J'essaie d'obtenir des informations (itemID, title, price et mileage) pour les annonces multiples de site eBay en utilisant leur api. Jusqu'à présent, je me suis this jusqu'àphp DOM, obtenir des valeurs du document xml, php xml

J'ai enregistré le document sous forme de fichier .xml en utilisant PHP cURL et maintenant je dois obtenir/extraire les valeurs (itemID, title, price et mileage) dans les tableaux et les stocker dans la base de données.

Malheureusement, je n'ai jamais travaillé avec PHP DOM, et je n'arrive pas à comprendre comment extraire les valeurs. J'ai essayé de suivre the tutorial found on IBM website mais je n'ai pas eu de succès. De l'aide serait grandement appréciée.

+0

'simplexml' est la meilleure façon d'extraire des données XML en PHP: http://www.php.net/simplexml_load_file –

+0

 $doc = new DOMDocument(); $doc->load('api.xml'); $items = $doc->getElementsByTagName("GetMultipleItemsResponse"); foreach($GetMultipleItemsResponse as $Item) { $itemID = $Item->getElementsByTagName("ItemID"); $itemID = $Item->item(0)->nodeValue; } echo $itemID; 
Michael

+0

qui devrait être une réponse au lieu de un commentaire. – Sjoerd

Répondre

2

Voici un exemple de code pour obtenir les itemID de votre fichier XML:

<?php 
$doc = new DomDocument(); 
$doc->load('a.xml'); 
$response = $doc->getElementsByTagName('GetMultipleItemsResponse')->item(0); 
$items = $doc->getElementsByTagName('Item'); 
foreach ($items as $item) 
{ 
    $itemID = $item->getElementsByTagName('ItemID')->item(0)->nodeValue; 
    echo $itemID."\n"; 
} 
?> 
  • $doc->getElementsByTagName() retourne un DomNodeList. Il peut être utilisé dans une boucle foreach et il a une méthode item().
  • Un DomNodeList contiendra tous les éléments correspondants. Si vous savez qu'il n'y a qu'un seul élément, vous pouvez le récupérer avec ->item(0)
  • La méthode item() renvoie un DomElement, qui hérite de DomNode. DomNode a une propriété nodeValue, qui contient le texte dans l'élément.

Résumé: utilisez SimpleXML

Questions connexes