Diyo Posté 4 Février 2007 Posté 4 Février 2007 Bonjour, Tout d'abord, j'espère ne pas me tromper de catégorie, ce sujet aurait aussi bien pu se trouver dans la catégorie Affiliation & publicité. Inscrit au système d'affiliation du site commerçant Alapage, j'ai l'intention d'utiliser les flux xml qu'il propose pour les intégrer sur un site web. Ca fait deux jours que je suis dessus et impossible de l'exploiter correctement. J'ai bien vu qu'il existe plusieurs scripts "prémachés" permettant cette intégration de flux xml mais impossible d'obtenir quelque chose d'intéressant quand j'arrive seulement à obtenir quelque chose. Je travaille sous php4 ce qui, semble-t-il, n'est pas un avantage... D'autant plus que je découvre plus ou moins xml. Voici un lien vers un flux xml Alapage correspondant à 1 produit: http://www.alapage.com/webservices/cardPro...333158&ts=0 Dans ce flot d'informations je ne souhaite finalement en conserver qu'une infime partie: ProductName, ImageUrlMedium et OurPrice... Bref, je galère vraiment... et si une ou plusieurs bonnes âmes ont dans l'idée de me venir en aide, je leur en serai éternellement reconnaissant Merci d'avance.
Leonick Posté 4 Février 2007 Posté 4 Février 2007 regarde à la fin du flux mediaCode is empty. c'est de là que vient le problème
Diyo Posté 4 Février 2007 Auteur Posté 4 Février 2007 Merci pour ta réponse. En fait, tous les flux générés par Alapage (lorsqu'on définit soi-même un ou plusieurs produits) se terminent par quelque chose du style: <Errors><Information num="1145/2007 Feb 04 - 22:05:06::0.88117700">mediaCode is empty.</Information></Errors> Celà signifie-t-il qu'ils sont inutilisables tant qu'il y aura cette erreur?
Vincent Posté 4 Février 2007 Posté 4 Février 2007 Ils sont tout a fait utilisable Cela dit, personnellement, il suffit pas de dire "j'ai un problème" pour que les autres puisse le résoudre, encore faut-il l'exposer précisément je n'ai pas compris ou est ton problème... excepté que tu en as un ! Je travaille avec les flux alapage... mais en Php5. Est-tu sur que tu ne puisses pas utiliser php5 qui facilite vraiment la tâche pour traiter les flux XML?
Diyo Posté 4 Février 2007 Auteur Posté 4 Février 2007 Effectivement, en me relisant, j'avoue n'avoir pas très bien exposé mon problème. Désolé. Mon problème est qu'aucun parser en php4 que j'ai trouvé ne semble fonctionner avec les flux générés par Alapage. Je dis bien "semble" car il n'est pas impossible que je m'y sois mal pris. Soit rien ne s'affiche, soit il y a plein d'erreurs. En outre, je n'ai pas les compétences nécessaires, en tout cas pas encore, pour faire ce parser moi-même. Et si j'ai créé ce sujet, c'est pour savoir si quelqu'un est en mesure de me venir en aide ou m'aiguiller. Je ne peux pas pas encore utilisé le php5 puisque mon hébergement mutualisé n'en est qu'à la 4.
Vincent Posté 4 Février 2007 Posté 4 Février 2007 En fouillant dans mes dossiers, j'ai trouvé un début de parser alapage fait en PHP4 Mais vu que je trouvais très compliqué, j'ai préféré m'entrenir avec mon Hebergeur pour passer en php5 Ce code t'afficheras une arborescence de du flux XML. <?php// lire un flux xml// [url="http://www.alapage.com/webservices/topXml.php?partnerId=CMLAP&categoryCode=1&nbrep=5&ts=0"]http://www.alapage.com/webservices/topXml....brep=5&ts=0[/url]//http://www.alapage.com/webservices/quickSearchXml.php?partnerId=CMLAP&categoryCode=1&availability=0&authors=&productName=&editors=&numberInSeries=&subjects=ENCYCLOPEDIE&isbn=&releaseDate=&keyword=expressions&minPrice=&maxPrice=&minMonth=&maxMonth=&minYear=2005&maxYear=2005&sort=defaut&ts=0$file = "http://www.alapage.com/webservices/topXml.php?partnerId=CMLAP&categoryCode=1&nbrep=5&ts=0";$depth = array();function startElement($parser, $name, $attrs){ global $depth; for ($i = 0; $i < $depth[$parser]; $i++) { echo ". "; } if($attrs['ID']) echo "$name (".$attrs['ID'].")<br>"; else echo "$name<br>"; $depth[$parser]++;}function characterData($parser, $data){ if(trim($data) == '') return false; global $depth; for ($i = 0; $i < $depth[$parser]; $i++) { echo ". "; } echo "'$data'<br>";}function endElement($parser, $name){ global $depth; $depth[$parser]--;}$xml_parser = xml_parser_create();xml_set_element_handler($xml_parser, "startElement", "endElement");xml_set_character_data_handler($xml_parser, "characterData");if (!($fp = fopen($file, "r"))) { die("could not open XML input");}while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); }}xml_parser_free($xml_parser);?>
Diyo Posté 4 Février 2007 Auteur Posté 4 Février 2007 Merci Vincent. Malheureusement, avec ce code j'ai une succession d'erreurs d'offset et d'index non-définis. Il est un peu tard pour que je l'étudie en détail afin de voir ce qui ne va pas. Je le ferai dès que possible. En revanche, avec un script trouvé sur cette page: XML parser functions (exemple 3), j'ai enfin réussi à obtenir quelque chose d'intéressant, à savoir l'arborescence du flux. Ne reste plus qu'à exploiter ce résultat...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant