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
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