Utiliser xml_set_element_handler() avec des méthodes d'une classe - PHP - Programmation
Marsh Posté le 09-10-2006 à 12:50:01
| anapajari a écrit : t'as essayé $this->openTag ? | 
 
 
ma classe est static, donc $this n'a pas de sens dans ce contexte... 
Marsh Posté le 09-10-2006 à 12:55:32
| rufo a écrit : ma classe est static, donc $this n'a pas de sens dans ce contexte... | 
 
t'as pas tort  j'ai lu un peu vite
 j'ai lu un peu vite 
Marsh Posté le 09-10-2006 à 15:19:05
self::openTag et self::closeTag ?
Marsh Posté le 09-10-2006 à 16:44:09
| Djebel1 a écrit : self::openTag et self::closeTag ? | 
 
 
ça, par contre, je ne coirs pas avoir testé. Merci. 
Marsh Posté le 19-05-2009 à 14:47:04
bonjour, ce post est vieux mais non validé donc je propose une solution : 
 
        $xml_parser = xml_parser_create(); 
 xml_set_object($xml_parser, &$this); 
 xml_set_element_handler($xml_parser, "startElement", "endElement" ); 
 xml_set_character_data_handler($xml_parser, "characterData" ); 
 
 xml_parse($xml_parser, $xmlToParse, true); 
 xml_parser_free($xml_parser); 
 
avec  
 
        public function startElement($parser, $name, $attrs){ 
        public function characterData($parser, $data){ 
        public function endElement($parser, $name){ 
 
dans la classe.
Marsh Posté le 05-10-2006 à 20:19:35
Bonjour,
j'ai un pb lors de l'utilisation de xml_set_element_handler(). Cette fonction prend comme 2 derniers paramètres des noms de fonctions (sous la forme de chaîne de caractères)
http://fr.php.net/manual/fr/functi [...] andler.php
Description
bool xml_set_element_handler ( resource parser, callback start_element_handler, callback end_element_handler )
xml_set_element_handler() affecte les gestionnaires de début et de fin de l'analyseur XML parser. start_element_handler et end_element_handler sont des chaînes qui contiennent les noms de fonctions qui existent lorsque xml_parse() est appelé pour créer parser.
La fonction start_element_handler doit accepter trois paramètres : start_element_handler ( resource parser, string name, array attribs )
Or, j'utilise xml_set_element_handler() dans une méthode static d'une classe static.
si openTag() et closeTag() sont déclarées à l'extérieure de ma classe, xml_set_element_handler() accepte de fonctionner. Mais je n'ai pas trouvé comment faire pour que xml_set_element_handler() fonctionne avec 2 fonctions static de la classe. J'ai essayé xml_set_element_handler($xml, "Tools::openTag", "Tools::closeTag" ); mais ça ne marche pas
Est-ce-que vous savez si ce que je veux faire est possible? Merci par avance de votre aide