Mailinglisten-Archive |
Hallo Thomas, > sollte der parser dann nicht einen error schmeissen? warum funktioniert > es ausserhalb der werte der attribute... deine erklaerung scheint mir > nicht ganz plausibel... zumal ich die entities auch bekommen... bloss > halt an der falschen stelle... gerade habe ich mir noch mal das Skript angesehen: function cDataHandler($xp,$data) { $this->cdata[count($this->cdata)-1] .= $data; } function defaultHandler($xp,$data) { $this->cDataHandler($xp,$data); } Das könnte daran liegen, dass Nichtgeparste Zeichenketten getrennt gepuffert werden und früher ausgegben werden als die übrigen Daten, die erst zusammengestückelt werden. Ich habe das Problem übrigens auch mit meiner Parser-Klasse und werde das noch genauer untersuchen. Du könntest mal Testen einen <!-- Kommentar --> zwichen Elementinhalt zu sezten. Wenn der Kommentar dann auch an der falschen Stelle erscheint, ist das ein Indiz, dass hier falsch zusammen gesetzt wird. Die Default-Handler-Ausgabe muss direkt in den Datenpuffer geschrieben werden. Ich weiß nicht, ob das da oben so läuft. Möglich ist aber, dass man das bei den Attributen gar nicht in den Griff kriegt. Hier könnte das Problem schon auf Expat-Ebene liegen. > dann kann ich gleich die obige datei einbinden... wenn der parser das > selbst macht, gehts garantiert schneller... :) Dass es wesentlich schneller geht, kann ich mir nicht vorstellen. str_replace ist verdammt schnell. Wie gesagt, sie muss tatsächlich in der selben Datei stehen, als interne DTD. Wenn es funktioniert, sag mal Bescheid. :-) Viele Grüße Peter
php::bar PHP Wiki - Listenarchive