ma question concerne l'analyse d'un document xml et la recupération des élements de ce dérnier et les afficher en liste ... mon code est le suivant:
<?php
global $txt;
/* fonction qui définit le traitement à faire quand le parseur trouve une balise xml ouvrante */
function startElement($parser_instance, $element_name, $attrs){
global $i;
/* suivant la balise on déclanche un traitement donné */
switch($element_name)
{
Case "DESSISI" :
echo "La racine <p>" ;
break ;
Case "ETUDIANT" : $i++;
echo "Etudiant N° "."$i"."<br>" ;
break ;
Case "NOM" : echo "le nom de l'étudiant est : "."$txt" ;
break ;
Case "PRENOM" : echo " sont prenom est : "."$txt" ; break ;
}
}
/***************************************************/
/*/ function characterData($parser_instance, $xml_data) { /*/
/*/ $txt=$xml_data; /*/
/*/ /*G un pb à ce niveau */ /*/
/*/ } /*/
/*************************************************/
/* fonction qui définit le traitement à faire quand le parseur trouve une balise xml fermante */
function endElement($parser_instance, $element_name){
switch($element_name)
{
Case "ETUDIANT" : echo "<p>";
break ;
Case "NOM" : echo "<br>"; break ;
Case "PRENOM" : echo "<br>";
break ;
}
}
$xml_file="liste.xml";
$parser = xml_parser_create();
xml_set_element_handler($parser,"startElement","endElement");
xml_set_character_data_handler($parser,"characterData");
$filehandler = fopen($xml_file, "r");
while($data= fread($filehandler, 4096)) {
xml_parse($parser, $data, feof($filehandler));
}
fclose($filehandler);
xml_parser_free($parser);
?>
mon probleme est au niveau de la fonction "characterData" , dans laquelle j'affecte à la variable $txt le contenu de chaque balise pour la'fficher par la suite dans la fonction startElement . or sa donne rien G pu comprendre que c'est impossible de faire passer la variable entre les deux fonctions.....si qlq 1 à une idée je serai vraiment reconnaissant .... et merci
edit mere-teresa : c'est mieux de mettre le code entre balises PHP