squirrelcgn
05-09-2007, 22:07
Hallo zusammen,
sitze hier an einem Parser, und stehe vor einem (wahrscheinlich) kleinen Problem, was ich aber einfach nicht gelöst bekomme!
Ich verwende die Funktion xml_parse() um eine XML-Datei einzulesen. Dabei kann es vorkommen, dass manche Tags so aussehen:
<AUTHOR>Heinz & Peter</AUTHOR>
Unerklärlicherweise "hackt" der Parser ab dem & alles ab, also sähen die cdata für den obigen AUTHOR-Tag so aus: "Heinz ". Man sieht, dass er sogar noch das Leerzeichen parst, aber dann abbricht.
Ich weiß nicht weiter!?!?! Hilfe!!
Danke und Grüße,
Chris
kapitaeniglo
05-09-2007, 22:55
ALso bei HTML/XHTML ist das & ein Sonderzeichen
ersetz es mal durch &
squirrelcgn
05-09-2007, 23:45
Ja klar, dann funzt es........
Aber das löst mein Problem nicht! ;-) Ich kann ja eben NICHT die Ausgangsdateien verändern (und möchte es auch nicht)! Das würde irgendwie dem Sinn eines Parsers entgegenstehen!?
Das Problem muss doch irgendwie in den Griff zu bekommen sein.
Die Frage ist doch: was passiert in dem Moment, in dem der XML-Parser auf das "&"-Zeichen trifft, oder? Wenn ich das wüsste, könnte ich vermutlich an genau dieser Stelle das Problem beheben....
Danke und Grüße,
Chris
squirrelcgn
06-09-2007, 00:24
Juchuuuuuuu! :-) Ich hab's! :-)
Habe einfach an verschiedenen Stellen
$data = str_replace("&", "kuckuck", $data); probiert und ... es klappt! :-) Warum ist mir jetzt auch egal, obwohl es mich ein wenig wundert! ;-)
Nochmal vielen Dank und Grüße,
Chris
PHP-Desaster
06-09-2007, 00:24
ein &-Zeichen in einer XML-Datei ist nicht erlaubt, da ein &-Zeichen eine XML-Entität einleitet! Der Parser verhält sich also korrekt!
squirrelcgn
06-09-2007, 00:27
Ja genau! Ich könnte natürlich die XML-Datei modifizieren und Entitäten definieren, aber das will, kann und darf ich nicht! ;-)
Grüße,
Chris
kapitaeniglo
06-09-2007, 00:35
hi
wie ich schon in meinem ersten posting schreiben wollte.
ersetze & durch & amp; (zusammengeschrieben)
http://www.devtrain.de/printnews.aspx?artnr=296
da stehts. und weil es ein sonderzeichen in XML ist bricht er ab. Diese muessen, wenn sie verwendet werden anders dargestellt werden.
Sonst hat man eine nicht korrekte XML- Datei
kapitaeniglo
06-09-2007, 00:37
hi
hab sogar eben den link von selfhtml dazu gefunden :
http://de.selfhtml.org/xml/regeln/zeichen.htm