<?php
$fichier = "./somedoc.xml";
// fonction de traitement des balises ouvrantes
function fonctionBaliseOuvrante($parseur, $nomBalise, $tableauAttributs)
{
// En fait... nous nous conteterons de mémoriser le nom de la balise
// afin d'en tenir compte dans la fonction "fonctionTexte"
global $derniereBaliseRencontree;
global $attribtab;
$derniereBaliseRencontree = $nomBalise;
$attribtab=$tableauAttributs;
echo("<br>voila la balsie >>");
print_r($derniereBaliseRencontree);
echo("<br>voila le tableau d'attribut c'est plus clair <br>");
print_r($attribtab);
}
// fonction de traitement des balises fermantes
function fonctionBaliseFermante($parseur, $nomBalise)
{
// On oublie la dernière balise rencontrée
global $derniereBaliseRencontree;
/* $derniereBaliseRencontree = "";
global $attribtab;
$attribtab="";*/
}
// fonction de traitement du texte
// qui est appelée par le "parseur"
function fonctionTexte($parseur, $texte)
{
global $derniereBaliseRencontree;
global $attribtab;
//echo ("test $derniereBaliseRencontree <br >");
// ATTENTION: Par défaut les noms des balises sont
// mises en majuscules
switch ($derniereBaliseRencontree) {
case "ANSWER":
echo("<br>ici on y est dans answer<br>");
echo "voici le texte de answer <b>".$texte."</b>;
break;
case "DOC":
echo("ici on y est dns doc");
echo $texte;
echo("alors ? rien au dessus tout en dessous... ben c un tableau d'attribut");
print_r($attribtab);
break;
}
}
// Création du parseur XML
$parseurXML = xml_parser_create();
xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante"
, "fonctionBaliseFermante");
xml_set_character_data_handler($parseurXML, "fonctionTexte");
// Ouverture du fichier
$fp = fopen($fichier, "r");
if (!$fp) die("Impossible d'ouvrir le fichier XML");
// Lecture ligne par ligne
while ( $ligneXML = fgets($fp, 1024)) {
// Analyse de la ligne
// REM: feof($fp) retourne TRUE s'il s'agit de la dernière
// ligne du fichier.
//echo ("$ligneXML");
xml_parse($parseurXML, $ligneXML, feof($fp)) or
die("Erreur XML");
}
xml_parser_free($parseurXML);
fclose($fp);
?>
j'espère que cela peux t'aider
aussi si tu as le pouvoir de formater le xml tu peux aussi faire...
des balise pour chaque paramètres et mettre la valeur dans la balise ou dans un [!CDATAtavaleur]]
voila j'espère que cela t'aidera
Tim