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 — Configura el manejador predeterminado
Configura la función del manejador predeterminado para el intérprete XML
parser
.
parser
Identificador del recurso del intérprete XML para el que se va a configurar la función del manejador predeterminado.
handler
handler
es un string que contiene el nombre de una función que debe existir cuando xml_parse() es llamado por parser
.
La función llamada mediante handler
debe aceptar dos parámetros:
$parser
, string $data
)parser
data
data
, contiene los datos de carateres. Esto puede ser la declaración XML, las declaraciones DOCTYPE, entidades u otros datos para los cuales no exista otro manejador.
Si la función del manejador se configura como una cadena vacia, o false
, el manejador en cuestión se deshabilita.
Nota: En lugar del nombre de una función, se puede asignar un array que contenga la referencia a un objeto o el nombre de un método.
Devuelve true
en caso de éxito o false
en caso de error.
Versión | Descripción |
---|---|
8.0.0 |
parser expects an XMLParser
instance now; previously, a valid xml resource was expected.
|
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.