maktu | Bonjour, je souhaiterais récupérer la valeur contenu entre 2 valise XML, et la mettre dans une variable php.
je passe par un switch mais je sais que ce n'est pas la bonne méhode....
je voudrais pouvoir réexploiter la valeur contenu dans cette variable, voila pourquoi je doit récupérer chaque valeur dans une varibale séparé.
Code :
- <?php
- $fichier = "catalogue.xml";
- //fonction de traitement des balises ouvrantes
- function fonctionBaliseOuvrante($parseur, $nomBalise, $tableauAttributs)
- {
- // mémorisation du nom de la balise
- // afin d'en tenir compte dans la fonction "fonctionTexte"
- global $derniereBaliseRencontree;
- $derniereBaliseRencontree = $nomBalise;
- }
-
- // fonction de traitement des balises fermantes
- function fonctionBaliseFermante($parseur, $nomBalise)
- {
- // On oublie la dernière balise rencontrée
- global $derniereBaliseRencontree;
- $derniereBaliseRencontree = "";
- }
- // fonction de traitement du texte qui est appelée par le "parseur"
- function fonctionTexte($parseur, $texte)
- {
- global $derniereBaliseRencontree;
-
- // Selon les cas, nous affichons le texte ou nous proposons un lien
-
- global $desc;
- $photo=$texte;
- $ref=$texte;
- $lien=$texte;
- $descC=$texte;
- $desc=$texte;
- switch ($derniereBaliseRencontree) {
- case "REF":
- echo $ref;
- break;
- case "LINK":
- echo ":<a href=\"$lien\">liens RS</a><br />";
- break;
- case "PHOTO":
- echo ":<a href=\"$photo\">Photo</a><br />";
- break;
- case "DESCRIPTIF_COURT":
- echo $descC;
- break;
- case "DESCRIPTIF":
- echo $desc;
- break;
- }
- }
- // Création du parseur XML
- $parseurXML = xml_parser_create();
- //nom des fonctions à appeler lorsque des balises ouvrantes ou fermantes sont rencontrées
- xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante"
- , "fonctionBaliseFermante" );
- // le nom de la fonction à appeler lorsque du texte est rencontré
- 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.
- xml_parse($parseurXML, $ligneXML, feof($fp)) or
- die("Erreur XML" );
- }
-
- xml_parser_free($parseurXML);
- fclose($fp);
- ?>
|
|