Je cherche à parser un xml avec php et à effectuer une fonction à chaque rencontre d'un handler. A priori, ça à l'air simple mais je ne trouve pas ma faute.
php :
Code
function fct_texte() {
echo("dans fct_texte");
}
//création du parseur
$parseurXML = xml_parser_create();
xml_set_character_data_handler($parseurXML, "fct_texte");
// ouverture du fichier xml, toute cette partie du code fonctionne
$file = "D:l\\xml\\document.xml";
$fp = fopen($file, "r") or die("impossible d'ouvrir le fichier XML");
// Lecture ligne par ligne
while ( $ligneXML = fgets($fp, 1024)) {
// Affichage "brut" de la ligne convertie en HTML
echo htmlEntities($ligneXML)."<br />";
}
xml_parser_free($parseurXML);
fclose($fp);
mon xml :
Code
<?xml version="1.0" encoding="utf-8"?>
<library>
<books>
<book book_name="book1" book_url="img/books/c7.gif" />
<book book_name="book2" book _url="img/books/f7.gif" />
...
</books>
</library>
la page php qui résulte du code ci-dessus m'affiche ceci:
<?xml version="1.0" encoding="utf-8"?>
<library>
<books>
<book book_name="book1" book_url="img/books/c7.gif" />
<book book_name="book2" book _url="img/books/f7.gif" />
...
</books>
</library>
Logiquement, 'dans fct_texte' devrais apparaitre plusieurs fois, or il n'en est rien... Quelqu'un voit-il ou je me trompe?