Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1592 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PHP+Classes+utilisation du parser XML : probleme avec les handlers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP+Classes+utilisation du parser XML : probleme avec les handlers

n°511943
samuelp
Posté le 10-09-2003 à 19:17:06  profilanswer
 

J'ai voulu faire une classe de parsage de fichiers XML
 
Voici le code

Code :
  1. <?
  2. /**
  3.   * @package System
  4.   * @class XMLParser
  5.   * @author samuelp
  6.   * @date September 2003
  7.   * @nota not yet tested and not completely implemented
  8.   * @contributors  
  9.   */
  10.  
  11.   class XMLParser
  12.   {
  13.      var $xmlfile ;
  14.     var $xml_parser ;
  15.     function XMLParser()
  16.     {
  17.       $this->xml_parser = xml_parser_create();
  18.       xml_parser_set_option($this->xml_parser, XML_OPTION_CASE_FOLDING, true);
  19.  xml_set_element_handler($this->xml_parser, '$this->startElement', $this->endElement);
  20.  xml_set_character_data_handler($this->xml_parser, $this->characterData);
  21.     }
  22.    
  23.    
  24.   function setFile($varFile)
  25.   {
  26.      if (file_exists($varFile))
  27.       $this->xmlfile = $varFile ;
  28.      else
  29.      {
  30.       echo "Cant open $varFile";
  31.       $this->xmlfile = "";
  32.   }
  33.   }
  34.  function startElement($parser, $name, $attrs)
  35.  {
  36.   // BEGINNING OF AN XML TAG. ATTRIBUTES ARE LOCATED IN THE ARRAY $attrs
  37.  print_r($attrs);
  38. }
  39.  function endElement($parser, $name)
  40.  {
  41.     // END OF AN XML TAG
  42. }
  43. function characterData($parser, $data)
  44. {
  45.      // Data is the data contained between each XML Tag
  46. }
  47. function runParser()
  48. {
  49.  if ($this->xmlfile=="" )
  50.  {
  51.   echo "No XML File Selected" ;
  52.  }
  53.  else
  54.  {
  55.   if (!($fp = fopen($this->xmlfile, "r" )))
  56.   {
  57.       die("Impossible de trouver le fichier XML" );
  58.   }
  59.   while ($data = fread($fp, 4096))
  60.   {
  61.        if (!xml_parse($this->xml_parser, $data, feof($fp)))
  62.        {
  63.           die(sprintf(" XML error : %s line %d",
  64.              xml_error_string(xml_get_error_code($this->xml_parser)),
  65.              xml_get_current_line_number($this->xml_parser)));
  66.        }
  67.   }
  68.   }
  69. }
  70. function freeXMLParser()
  71. {
  72.  xml_parser_free($this->xml_parser);
  73. }
  74. }
  75.   ?>


 
Le probleme c'est que, quand j'appelle la methode runParser, il me chie dans la colle a cause des handlers non reconnus.
 
J'ai essayé en passant simplement le nom des methodes, avec "$this->startElement", '$this->startElement' et $this->startElement
 
Mais toujours le meme probleme. Qqn aurait une idee ?
 
Merci

mood
Publicité
Posté le 10-09-2003 à 19:17:06  profilanswer
 

n°511984
yo c spi
Yo !
Posté le 10-09-2003 à 20:08:43  profilanswer
 

samuelp a écrit :

J'ai voulu faire une classe de parsage de fichiers XML
 
Le probleme c'est que, quand j'appelle la methode runParser, il me chie dans la colle a cause des handlers non reconnus.
 
J'ai essayé en passant simplement le nom des methodes, avec "$this->startElement", '$this->startElement' et $this->startElement
 
Mais toujours le meme probleme. Qqn aurait une idee ?
 
Merci


 
Quel est le problème exact ? Je ne comprends pas très bien.
 
Tu as peu etre tes raisons de construire ton propre parser, sinon il y a minixml, il est tres tres bien !
http://minixml.psychogenic.com/

n°511988
samuelp
Posté le 10-09-2003 à 20:25:18  profilanswer
 

Yo c Spi a écrit :


 
Quel est le problème exact ? Je ne comprends pas très bien.
 
Tu as peu etre tes raisons de construire ton propre parser, sinon il y a minixml, il est tres tres bien !
http://minixml.psychogenic.com/


 
Pour le set_element_handler : si je met le ,om d'une fonction et une fonction externe, ça passe.
 
Par contre si je veux utiliser une methode de la classe XMLParser, je ne sais pas quoi mettre en parametre de set_element_handler pour lui dire que les elements handlers sont telle et telle methode


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PHP+Classes+utilisation du parser XML : probleme avec les handlers

 

Sujets relatifs
Utilisation de MS Visual SourceSafe et C++ Builder : possible ?[Log4J+JBoss+JMS] Probleme de type de message
Problème d'effacement[ PHP et LDAP ]Comment lire l'attribut ref d'un referral en php
[Java-XML] Arret de lecture d'un fichier XML avec un parser SAXProblème protocole DCOM ???
DirectShow + Builder 6 => Problème de lieur avec TIME_FORMAT_FRAME[PHP] Help pour cookies
[PHP-RESOLU] formulaire avec réaffichage problématique 
Plus de sujets relatifs à : PHP+Classes+utilisation du parser XML : probleme avec les handlers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR