Hallo,
Bitte helft mir!!!!
Ich habe eine XML-Datei die ich über PHP parse, den Inhalt modifiziere und anschließend wieder zurückschreibe, das klapt auch ohne probleme es sei den in dem text der zurückgeschrieben wird befindet sich ein "&". dann kriege ich die "not well-formed" meldung beim parsen und anzeigen.
s.u.
Da aber alle anderen sonderzeichen (öäü/"§"/§$ usw.) funktionieren verstehe ich das Problem nicht.
Die xml-datei ist mit ISO-8859-1 encoded, und ich hab auch schon
das erklärt, warum die Umlaute zulässig sind.
versucht alle "&" durch & oder <[CDTA[&]]> zu ersetzen. ohne erfolg
& hat in XML die Bedeutung, eine Character Entity einzuleiten. Daher muß es ersetzt werden.
& oder 0 sollten eigentlich genauso wie & funktionieren.
Der XML 1.0-Standard sagt dazu:
The ampersand character (&) and the left angle bracket (<) may appear in their literal form only when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section. If they are needed elsewhere, they must be escaped using either numeric character references or the strings "&" and "<" respectively. The right angle bracket (>) may be represented using the string ">", and must, for compatibility, be escaped using ">" or a character reference when it appears in the string "]]>" in content, when that string is not marking the end of a CDATA section.
Was steht denn in dem erzeugten File drin an den Stellen, wo Du ein & im Text hast? Wird dort irgendwas durch PHP schon ersetzt?
Andreas