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