Moin!
ich möchte HTML-Code zuerst in einer XML zwischenspeichern und später dann wieder auslesen und als HTML-Code ausgeben.
Verpacke es in <![CDATA[ ]]>
.
Das problem bei der Sache ist, dass ich nicht einfach alle ISO-8859-1-Sonderzeichen zum speichern in ihre Entities konvertieren kann. Denn der XML-Parser meckert zurecht, wenn er Sachen wie "ä" vorfindet, da das nicht XML-konform ist. XML kennt ja nur die Eintities """, "&", "'", "<" und ">".
Es ist überflüssig, solche Zeichen in Entities zu verpacken. Aber wenn du auf CDATA verzichtest, musst du in der Tat alle im HTML-Quelltext enthaltenen Zeichen, die in XML Sonderbedeutung haben, als Entity schreiben. htmlspecialchars() mit der passenden Option reicht da vollkommen aus - alternativ benutzt du eine passende XML-Klasse (z.B. DOM), der du einfach den HTML-Quelltext als Knoteninhalt übergibst - die Klasse sorgt dann für den korrekten Aufbau des XML.
- Die Umwandlung lässt sich mit einer Sonderbehandlung für die fünf validen XML-Entities in den Griff bekommen. Aber bei der zurückwandlung habe ich genau das umgekehrte Problem.
Wie greifst du denn auf das gespeicherte XML zu? Doch hoffentlich nicht nackt auf den Quelltext.
- Sven Rautenberg