1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| class fiche {
var $url ;
var $titre ;
var $auteur ;
var $contenu ;
// fonction appelée lors de la rencontre d'une balise de début
function startElement($parser,$name,$attributs){
...
}//startElement
// la fonction appelée lors de la rencontre d'une balise de fin
function endElement($parser,$name){
...
}//endElement
// la fonction d'affichage des données
function afficheData($parser,$data){
...
}//afficheData
function fiche($url) {
// données
$this->url = $url ;
// on crée un objet d'analyse de texte xml
$xml_parser=xml_parser_create();
// on indique quelles fonctions exécuter en début et fin de balise
xml_set_element_handler($xml_parser,$this->startElement,$this->endElement);
// on indique quelle fonction exécuter lors de la rencontre de données
xml_set_character_data_handler($xml_parser,$this->afficheData);
// ouverture du fichier xml en lecture
if (! ($fp=@fopen($url,"r"))){
print "impossible d'ouvrir le fichier xml $url";
exit;
}//if
// exploitation du fichier xml
// par blocs de 4096 octets
while($data=fread($fp,4096)){
// analyse des données lues
if (! xml_parse($xml_parser,$data,feof($fp))){
// il s'est produit une erreur
printf ("erreur XML : %s à la ligne %d\n",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser));
// fin
exit;
}//if
}//while
// le fichier a été exploré
// on libère les ressources occupées par l'analyseur xml
xml_parser_free($xml_parser);
}
} |
Partager