salut Americas
voici un parseur que tu peux adapter avec les champs que tu veux une fois la structure de ta base créée
tu l'appelles en tache cron et çà marche tout seul
tu peux remplacer truncate par update ou autre chose
çà marche puisque je m'en sert
<?php mysql_connect("tonroot","tabase","tonpass") or die("Impossible de se connecter"); mysql_select_db("tabase") or die("pas possible de trouver la base"); mysql_query("TRUNCATE TABLE `sejour`"); $file = "http://www.tonsite.com/tonxml.xml"; if(isset($file)) { $title = ""; $url = ""; $curtag = ""; /** fonction startElement, déclenchée lorsque le parseur rencontre une balise XML du type **/ function startElement($parser, $name, $attrs) { global $curtag, $id, $rubrique, $pays, $titre, $form, $arrive, $duree, $img, $resume, $prix, $url ; $curtag = $name; if ($name == "ID") $id = ""; if ($name == "RUBRIQUE") $rubrique = ""; if ($name == "PAYS") $pays = ""; if ($name == "TITRE") $titre = ""; if ($name == "FORM") $form = ""; if ($name == "ARRIVE") $arrive = ""; if ($name == "DUREE") $duree = ""; if ($name == "IMG") $img = ""; if ($name == "RESUME") $resume = ""; if ($name == "PRIX") $prix = ""; if ($name == "URL") $url = ""; } /** fonction endElement, déclenchée lorsque le parseur rencontre une balise XML du type **/ function endElement($parser, $name) { global $curtag, $id, $rubrique, $pays, $titre, $form, $arrive, $duree, $img, $resume, $prix, $url ; $curtag = ""; if ($name == "URL") { $rubrique = addslashes ($rubrique); $pays = addslashes ($pays); $titre = addslashes($titre); $form = addslashes ($form); $arrive = addslashes ($arrive); $resume = addslashes($resume); $query = "INSERT INTO sejour(id,rubrique,pays,titre,form,arrive,duree,img,resume,prix,url) VALUES('".$id."','".$rubrique."','".$pays."','".$titre."','".$form."','".$arrive."','".$duree."','".$img."','".$resume."','".$prix."','".$url."')"; $result = mysql_query($query); } } /** fonction characterData, déclenchée lorsque le parseur rencontre des caractères, à l'intérieur d'un noeud XML **/ function characterData($parser, $data) { global $curtag, $id, $rubrique, $pays, $titre, $form, $arrive, $duree, $img, $resume, $prix, $url ; if ($curtag == "ID") $id .= $data; if ($curtag == "RUBRIQUE") $rubrique .= $data; if ($curtag == "PAYS") $pays .= $data; if ($curtag == "TITRE") $titre .= $data; if ($curtag == "FORM") $form .= $data; if ($curtag == "ARRIVE") $arrive .= $data; if ($curtag == "DUREE") $duree .= $data; if ($curtag == "IMG") $img .= $data; if ($curtag == "RESUME") $resume .= $data; if ($curtag == "PRIX") $prix .= $data; if ($curtag == "URL") $url .= $data; } /** crée un nouveau parseur **/ $xml_parser = xml_parser_create(); xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true); /** enregistre les trois fonctions ci dessus **/ xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); if (!($fp = fopen($file, "r"))) { die("Impossible d'ouvrir l'URL..."); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("erreur XML: %s à la ligne %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); mysql_close(); } ?>
[Edit captain_torche]Merci d'utiliser la balise CODEBOX pour les codes longs