phpbar.de logo

Mailinglisten-Archive

AW: AW: [php] sax parser und entities innerhalb von attributwerten

AW: AW: [php] sax parser und entities innerhalb von attributwerten

Peter Bieling network at media-palette.de
Sam Jul 24 15:43:43 CEST 2004


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