J'ai l'habitude de parser des petit fichier en xml mais là j'ai besoin d'importer un gros fichier. J'ai découvert cette methode qui permet d'afficher facilement mais je ne parviens pas a inserer les données dans la base des données. Merci de votre aide si vous pouvez m'aider.
Mon objectif c'est d'arriver a faire executer cette commande pour chaque produit
$query="INSERT INTO `table_livres` ( `id_livre` , `nom_livre` , `description`) VALUES ('$id','$titre','$description')";
$result = mysql_query($query);
Mon problème, je ne sais pas où le placer dans le script ici en dessous qui affiche correctement les données.
Structure du fichier XML à importer
<item> <id>1</id> <titre>titre du livre numéro 1</titre> <description>Ici la description résumé du livre titre numero 1</description> </item>
Mon script php pour recuperer les données XML.
<?php
$file="http://www.site-externe.com/mon_fichier.xml";
function startElement($parser, $name, $attribs) {
global $titre, $id, $description;
if ('titre' == strtolower($name)) {$titre = true;}
if ('id' == strtolower($name)) {$id = true;}
if ('description' == strtolower($name)) {$description = true;}
}
function endElement($parser, $name) {
global $titre,$id,$description;
if ($id) {echo "<p>$id"; $id = false;}
if ($titre) {echo "$titre<br>"; $titre = false;}
if ($description) {echo "$description</p>"; $description = false;}
}
function characterData($parser, $data) {
global $titre,$id,$description;
if ($titre) {$titre = $data;}
if ($id) {$id = $data;}
if ($description) {$description = $data;}
}
$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);
echo $texte1;
echo '. ';
echo $texte2;
?>
Voila j'espere que c'est claire, j'espere que j'obtiendrai de l'aide ici.
Merci a vous !
PS: Si quelqu'un a un script tout fait je suis preneur s'il arrive a appliquer ma structure dessus. Cette remarque c'est juste au cas où



Haut










