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 — Öntanımlı işleyiciyi belirler
çözümleyici
ile belirtilen XML çözümleyici için
öntanımlı işleyici belirler.
çözümleyici
Öntanımlı işleyiciyi ayarlamak için XML çözümleyiciye başvuru.
işleyici
xml_parse() işlevi
çözümleyici
için çağrıldığında mevcut olması
gereken işlevin ismini içeren dizge.
İsmi işleyici
ile belirtilen işlevin iki
bağımsız değişken kabul etmesi gerekir:
çözümleyici
veri
veri
, karakter
verisini içerir. Dizge, XML bildirimi, belge türü bildirimi veya
diğer işleyiciler tarafından ele alınmayan başka bir verileri
içerebilir.
işleyici
bağımsız değişkeninde işlev olarak boş bir
dizge veya false
belirtilirse ilgili işleyici iptal edilir.
Bilginize: Bir işlev ismi yerine, bir nesneye gönderim ve bir yöntem ismi içeren bir dizi de kullanılabilir.
Başarı durumunda true
, başarısızlık durumunda false
döner.
Sürüm: | Açıklama |
---|---|
8.0.0 |
ayrıştırıcı artık bir XMLParser
örneği olabiliyor; evvelce resource türünde geçerli bir
xml değeri kabul ederdi.
|
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.