Weil < ein < und > ein > darstellt. Der XML-Parser gibt Dir natürlich nicht die rohen XML-Daten zurück, sondern die echten, dekodierten. Genausowenig zeigt Dir Dein Webbrowser doch das ü eines HTML-Dokuments an, er zeigt das ü.
Das ist ja mal dumm, der Parser sollte die Werte in den Tags so lassen wie sie da drin stehn.
Tut er ja auch. > stellt in XML das Zeichen > dar, dann muß der Parser doch wohl auch ein > zurückliefern und nicht irgendeine interne Kodierung.
Direkt gefragt: Welchen Sinn soll es haben, wenn Du aus der XML-Datei nicht das wieder rausbekommst, was Du vorher reingeschrieben hast? Was ist so wichtig daran, auf für den reingeschriebenen Text "Berlin->Hamburg" "Berlin->Hamburg" rauszubekommen?
Doch es sind neue Probs aufgetaucht, ist ein ö im String wird zwar der Wert öt; ins XML File gespeichert, nur der Parser hat gewaltige Probleme das File richtig zu Parsen, bei " < > gehts aber ohne Probleme, nur bei öäü und ß nicht.
An was liegt das schonwieder?
Das ö ist kein Steuerzeichen und muß nicht maskiert werden. Benutze statt htmlentities() htmlspecialchars().
Gruß,
soenk.e