Bonjour,
Voilà mon problème,
J'ai créé pour mon site une classe de gestion XML, sauf que j'ai l'impression que la lib XML gère très mal la POO, je m'explique :
dans ma classe j'ai une méthode parse qui contient ceci, c'est a dire l'initialisation de mon objet xml, et la definition des fonctions pour les evenement xml.
et ensuite j'ai ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $xmlParser = xml_parser_create(); xml_parser_set_option($xmlParser, XML_OPTION_CASE_FOLDING, 1); xml_set_element_handler($xmlParser, array($this,"openBalise"), array($this,"closeBalise")); xml_set_character_data_handler($xmlParser, array($this,"text")); xml_set_default_handler($xmlParser,array($this,"defaut")); xml_parse($xmlParser,$this->stringXml);
bon jusque là pas de prob.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 function openBalise($parser, $name, $attr){ $balise = array("name"=>$name, "attr"=>$attr, "text"=>"", "depth"=>$this->domDepth); $this->tBalises[$this->nbBalises]= $balise; $this->nbBalises++; $this->domDepth++; } function closeBalise($parser, $name){ $this->domDepth--; } function text($parser, $text){ $this->tBalises[$this->nbBalises]["text"] = $text; } function defaut(){ }
Le prob arrive lorsque j'execute, je me rend compte que la propriété dans openBalise $this->nbBalises n'est pas la même que celle de closeBalise ou meme de text ou de defaut, à croire que la lib xml re-instancie un objet pour chaque function d'évenement, or il ne devrais pas car je lui ai passé le pointeur sur l'objet $this.
et de meme si je met un var_dump($this->tBalises) après xml_parse($xmlParser,$this->stringXml); , il me renvoi :Alors pourquoi cela me fais ça?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 array(0) { }
Partager