Leeloo5E: + PHP: kleiner < und größer >

Beitrag lesen

Hallo,

bei XML ist es ja so, dass es wohlgeformt sein muss. D.h. jedes geöffnete Tag muss auch geschlossen werden. Soweit eigentlich kein Problem. Allerdings stolpere ich gerade über einfach < und > im normalen Text ...

Fangen wir von vorne an: Ich baue mir mit Hilfe von DOMImplementation von PHP ein XML-Dokument in UTF-8. Damit auch jeder Inhalt der erstellten XML-Tags akzeptiert werden, muss ich sie maskieren, mittels htmlentites (sorry, ein anderer Weg ist mir grad nicht eingefallen). Kommt nämlich sonst sowas wie ein einfaches "&" wird wieder rumgejammert, also maskieren: &amp;
Bei Anwendung von saveXML() - also den generierten Baum als String speichern, werden scheinbar < und >, die im normalen Text enthalten sind, automatisch maskiert. Das sind übrigens öffnende und schließende HTML-Tags, die mittels eines Editors eingegeben wurden -> d.h. Wohlgeformtheit bleibt erhalten. Ich weiß ganz genau, ich habe sie nicht maskiert. Um sie wieder zu ordentlichen Tags zu machen, muss ich sie mit html_entity_decode wieder umwandeln. Dummerweise werden auf diesem Weg auch die einfachen größer und kleiner im Text (" 1 < 2 < 3 > 2 > 1") wieder zurück verwandelt. Beim Laden des XML-Strings in ein neues XML-Dokument mittels new DomDocument und loadXML() sagt der:

Warning: DOMDocument::loadXML(): xmlParseEntityRef: no name in Entity,

DOMDocument::loadXML(): StartTag: invalid element name in Entity

Wie krieg kann ich die wirklichen Tags erhalten, so dass html_entity_decode flach fällt, aber die einfachen Zeichen < und > maskiert, dass loadXML sie akzeptiert?

Gruß,
Leeloo

--
"Als es noch keine Computer gab, war das Programmieren noch relativ einfach." - Edsger W. Dijkstra