Salut à tous, alors mon parser XML marche parfaitement et m'affiche bien les données mais, là où ça coince, c'est pour les enregistrer tout betement dans un tableau :s
En fait, on parcours le xml et entre chaque ouverture et fermeture de balise, on affiche le texte avec un echo et moi, je voudrais qu'a chaque fois, ça l'enregistre dans un tableau (en gras). Normalement, ce que j'ai fait est bon non????
Voila le code :
<?php
$fichier = "fichier_resultant.xml";
$tabDonnee = array();
function ouvertureBalise($parseur, $nomBalise, $attributBalise)
{
echo "$nomBalise<br>";
$tabDonnee[]=$nomBalise;
}
function texte($parseur, $donnee)
{
if(trim($donnee) == '') return false;
echo "$donnee<br>";
$tabDonnee[]=$donnee;
}
function fermetureBalise($parseur, $nomBalise)
{
echo "$nomBalise<br>";
$tabDonnee[]=$nomBalise;
}
//Déclaration du parseur
$xml_parseur = xml_parser_create();
//Déclaration des fonctions d'ouverture et de fermeture de balises
xml_set_element_handler($xml_parseur, "ouvertureBalise", "fermetureBalise");
//Déclaration de la fonction de récupération du texte
xml_set_character_data_handler($xml_parseur, "texte");
if (!($fp = fopen($fichier, "r")))
{
die("Impossible d'ouvrir le fichier XML");
}
//On parcours le fichier XML lignes par lignes
while ($donnee = fread($fp, 4096))
{
if (!xml_parse($xml_parseur, $donnee, feof($fp)))
{
die(sprintf("erreur XML: %s à la ligne %d", xml_error_string(xml_get_error_code($xml_parseur)), xml_get_current_line_number($xml_parseur)));
}
}
//On libere le parseur
xml_parser_free($xml_parseur);
//On affiche le tableau de résultats
foreach ( $tabDonnee as $Contenu ) //on parcours le tableau
{
echo "Contenu : $Contenu<br />\n";//on affiche le contenu
}
?>