[XML] Valeur XML dans une variable PHP
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 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 69 70 71 72 73 74 75 76 77 78 79 80 81
| <?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);
?> |