Parseur xml affiche les elements que une fois

momohuri Messages postés 256 Statut Membre -  
momohuri Messages postés 256 Statut Membre -
bonjour,

j'ai un parseur xml,

Et ils fonctione nickel, sauf que j'aimerais que au lieu d'afficher tout le flux il n'affiche que une seul fois la balise description.(l'avant dernière a être parut). On doit devoir modifier un truc au niveau du switch mais je ne sais pas quoi...






<?php
$fichier = "mon fichier.xml";

// Ma propre 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;

$derniereBaliseRencontree = $nomBalise;
}

// Ma propre fonction de traitement des balises fermantes
function fonctionBaliseFermante($parseur, $nomBalise)
{
// On oublie la dernière balise rencontrée
global $derniereBaliseRencontree;

$derniereBaliseRencontree = "";
}

// Ma propre 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
// ATTENTION: Par défaut les noms des balises sont
// mises en majuscules




switch ($derniereBaliseRencontree) {


case "DESCRIPTION":

echo $texte;

break;

}
}

// Création du parseur XML
$parseurXML = xml_parser_create();

// Je précise le nom des fonctions à appeler
// lorsque des balises ouvrantes ou fermantes sont rencontrées
xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante"
, "fonctionBaliseFermante");

// Je précise 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);
?>


Merci!!

A voir également:

1 réponse

momohuri Messages postés 256 Statut Membre 8
 
Personne?
0