I have the same issue using two installation of PHP5: on accepts to use the default handler while the other only uses the character_data one.
Maybe a configuration problem...
;) Nonor.
(PHP 4, PHP 5, PHP 7, PHP 8)
xml_set_default_handler — Affecte le gestionnaire XML par défaut
Affecte le gestionnaire par défaut de l'analyseur XML
parser
.
parser
Une référence à un analyseur XML à définir comme fonction d'analyse par défaut.
handler
handler
est
une chaîne qui contient le nom d'une fonction qui existe lorsque
xml_parse() est appelé pour créer
parser
.
La fonction handler
doit accepter deux paramètres :
parser
parser
, est une
référence sur l'analyseur XML qui appelle cette fonction.
data
data
, contient les
caractères sous la forme d'une chaîne. Cela peut être
une déclaration XML, un type de document, une entité ou
d'autres données pour lesquelles aucun gestionnaire n'est prévu.
Si un gestionnaire reçoit une chaîne vide ou false
, c'est
qu'il est désactivé.
Note: À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.
Cette fonction retourne true
en cas de succès ou false
si une erreur survient.
Version | Description |
---|---|
8.0.0 |
parser attend une instance de XMLParser
désormais; auparavent, une resource xml était attendue.
|
I have the same issue using two installation of PHP5: on accepts to use the default handler while the other only uses the character_data one.
Maybe a configuration problem...
;) Nonor.
it seems to me that in PHP5 the function defined as default-handler (using xml_set_default_handler()) doesen't get passed the cdata anymore:
i.e.:
xml_set_element_handler($this->parser, 'parseSTART', 'parseEND');
xml_set_default_handler($this->parser, 'parseDEFAULT');
function parseSTART() { ... }
function parseEND() { ... }
function parseDEFAULT() { ... }
under PHP5, parseDEFAULT will NOT get passed any cdata, but unter PHP4 it will. at least that's my take on the strange stuff (not) happening after migrating to PHP5.
my solution was to add a xml_set_character_data_handler($parser, 'parseDEFAULT'). it worked for me.