1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| //function appelé au début de chaque balise du fichier XML
function gestionnaire_debut($analyseur, $nom, $attribut){
global $cont;
global $nb;
$balise=$nom;
$nb++;
}
//function appelé à la fin de chaque balise du fichier XML
function gestionnaire_fin($analyseur, $nom){
if($nom=="MODEREG")
insert_base();
global $balise;
$balise=$nom;
global $nb;
$nb--;
}
//function appelé lorsque des DATA sont trouvés
function gestionnaire_texte($analyseur, $texte){
global $texteavant;
global $balise;
global $nb;
global $codetypeannexe,$typeannexe;
switch ($balise) {
case "CODE-REG":
$codetypeannexe=$texteavant;
break;
case "LIBELLE":
$typeannexe=$texteavant;
break;
}
$balise="";
$texteavant = $texte;
}
//insertion dans la base quand datas trouvées
function insert_base(){
global $codeclient;
global $codeadresse;
global $balise;
global $codetypeannexe,$typeannexe;
global $table;
$typeannexe=eregi_replace("'","''",$typeannexe);
$req = "INSERT INTO $table (CODE_MODE_REGLEMENT , MODE_REGLEMENT) VALUES ('$codetypeannexe','$typeannexe')";
$ajout=mssql_query("$req");
if (!$ajout) {echo "$req <br><br>";}
$cont++;
}
$analyseur_xml = xml_parser_create("ISO-8859-1");
xml_set_element_handler($analyseur_xml, "gestionnaire_debut", "gestionnaire_fin");
xml_set_character_data_handler($analyseur_xml, "gestionnaire_texte");
if (!($id_fichier = fopen($fichier, "r"))){ die("Impossible d'ouvrir le fichier XML !"); }
while ($donnee = fread($id_fichier, filesize($fichier))) { //echo $donnee."<br>";
if (!xml_parse($analyseur_xml, $donnee, feof($id_fichier))) {
die(sprintf("Une erreur XML %s s'est produite "
. "à la ligne %d et à la colonne %d.",
xml_error_string(xml_get_error_code($analyseur_xml)),
xml_get_current_line_number($analyseur_xml),
xml_get_current_column_number($analyseur_xml)));
}
}
xml_parser_free($analyseur_xml); |
Partager