<?php
$analyseur = "";
$fichierXml = "news.xml";
$balisesOuvrantes = array(
"NEWSATOR" => "<html><head><title>NEWSATOR</title></head><body><div align=center><b><font face=\"Verdana\" size=6>.:: flash spécial ::. </font></b><br><br><br>",
"NEWS" => "<table width=75% border=1 cellspacing=1>",
"TITRE" => "<tr><td><font face=\"Verdana\" size=4><b>",
"CORPS" => "<tr><td><font face=\"Verdana\" size=2>
<p align=\"justify\"> ",
"AUTEUR" => "<tr><td><div align=right><font size=2 face=\"Verdana\"><i>par ");
$balisesFermantes = array(
"NEWSATOR" => "</div></body></html>",
"NEWS" => "</table><br><br>",
"TITRE" => "</b></font></td></tr>",
"CORPS" => "</p></font></td></tr>",
"AUTEUR" => "</font></i></font></div></td></tr>"
);
//Méthodes
function debutBalise($parser, $nom, $attributs) {
global $balisesOuvrantes;
print($balisesOuvrantes[$nom]);
}
function finBalise($parser, $nom) {
global $balisesFermantes;
print($balisesFermantes[$nom]);
}
function texte($parser, $data) {
print("$data");
}
function gestionnaireDePI($parser, $cible, $data) {
switch (strtolower($cible)){
case "php":
eval($data);
break;
}
}
$analyseur = xml_parser_create();
xml_parser_set_option($analyseur, XML_OPTION_CASE_FOLDING, true);
// ah-HA!
//xml_set_object($analyseur, &$this);
xml_set_element_handler($analyseur, "debutBalise", "finBalise");
xml_set_character_data_handler($analyseur, "texte");
xml_set_processing_instruction_handler($analyseur, "gestionnaireDePI");
if (!($fp = @fopen($fichierXml, "r"))) {
die("impossible d'ouvrir le fichier XML $fichierXML");
}
while ($data = fread($fp, 4096)) {
if ( !xml_parse( $analyseur, $data, feof($fp) ) ) {
die( sprintf( "erreur XML %s à la ligne: %d\n\n",
xml_error_string(xml_get_error_code( $analyseur ) ),
xml_get_current_line_number( $analyseur) ) );
}
}
fclose($fp);
xml_parser_free($analyseur);
?>