parser xml
Posté : 24 juil. 2005, 18:34
salut ..
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:
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
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