Récupérer valeur entre balise XML

Récupérer valeur entre balise XML - PHP - Programmation

Marsh Posté le 12-06-2009 à 11:50:54    

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 :
  1. <?php
  2.     $fichier = "catalogue.xml";
  3.   //fonction de traitement des balises ouvrantes
  4.     function fonctionBaliseOuvrante($parseur, $nomBalise, $tableauAttributs)
  5.     {
  6.         //  mémorisation du nom de la balise
  7.         // afin d'en tenir compte dans la fonction "fonctionTexte"
  8.         global $derniereBaliseRencontree;
  9.         $derniereBaliseRencontree = $nomBalise;
  10.     }
  11.  
  12.     //  fonction de traitement des balises fermantes
  13.     function fonctionBaliseFermante($parseur, $nomBalise)
  14.     {
  15.         // On oublie la dernière balise rencontrée
  16.         global $derniereBaliseRencontree;
  17.         $derniereBaliseRencontree = "";
  18.     }
  19.     // fonction de traitement du texte qui est appelée par le "parseur"
  20.     function fonctionTexte($parseur, $texte)
  21.     {
  22.         global $derniereBaliseRencontree;
  23.        
  24.         // Selon les cas, nous affichons le texte ou nous proposons un lien
  25.      
  26.         global $desc;
  27.  $photo=$texte;
  28.  $ref=$texte;
  29.  $lien=$texte;
  30.  $descC=$texte;
  31.  $desc=$texte;
  32.         switch ($derniereBaliseRencontree) {
  33.             case "REF":
  34.                 echo $ref;
  35.                 break;
  36.             case "LINK":
  37.                 echo ":<a href=\"$lien\">liens RS</a><br />";
  38.                 break;
  39.   case "PHOTO":
  40.                 echo ":<a href=\"$photo\">Photo</a><br />";
  41.                 break;
  42.   case "DESCRIPTIF_COURT":
  43.                 echo $descC;
  44.                 break;
  45.   case "DESCRIPTIF":
  46.                 echo $desc;
  47.                 break;
  48.         }       
  49.     }
  50.     // Création du parseur XML
  51.     $parseurXML = xml_parser_create();
  52.     //nom des fonctions à appeler lorsque des balises ouvrantes ou fermantes sont rencontrées
  53.     xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante"
  54.                                        , "fonctionBaliseFermante" );
  55.     //  le nom de la fonction à appeler lorsque du texte est rencontré
  56.     xml_set_character_data_handler($parseurXML, "fonctionTexte" );
  57.     // Ouverture du fichier
  58.     $fp = fopen($fichier, "r" );
  59.     if (!$fp) die("Impossible d'ouvrir le fichier XML" );
  60.     // Lecture ligne par ligne
  61.     while ( $ligneXML = fgets($fp, 1024)) {
  62.         // Analyse de la ligne
  63.         // REM: feof($fp) retourne TRUE s'il s'agit de la dernière
  64.         //      ligne du fichier.
  65.         xml_parse($parseurXML, $ligneXML, feof($fp)) or
  66.             die("Erreur XML" );
  67.     }
  68.    
  69.     xml_parser_free($parseurXML);
  70.     fclose($fp);
  71. ?>

Reply

Marsh Posté le 12-06-2009 à 11:50:54   

Reply

Marsh Posté le 12-06-2009 à 13:36:34    

Tu es sous PHP 4 ? Sinon SimpleXML est direct.

Reply

Marsh Posté le 12-06-2009 à 14:18:25    

php5 , j'vais regarder merci

Reply

Marsh Posté le 12-06-2009 à 15:22:34    

j'ai regarder des exemple je comprend le principe mais il récupère tjrs des valeur entre plusieur balise....
je ne sais pas comment récupérér simplement la valeur entre 2 balise...par exemple
<produit>
<categorie>Connectique</categorie>
</produit>

Reply

Marsh Posté le 15-06-2009 à 13:06:14    

y'a plusieurs lib XML en PHP : libXML, expat, DOM, simpleXML...
 
http://fr3.php.net/manual/fr/book.xml.php


Message édité par rufo le 15-06-2009 à 13:07:00

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed