Bis-Strich in XML

Hallo!

Ich habe ein XML mit ISO-8859-1 Codierung; innerhalb von CDATA-Blöcken sind die Inhalte platziert.

Tritt innerhalb (!) eines CDATA-Blocks ein Bis-Strich (–) auf, kann die Datei vom Browser nicht angezeigt werden; bekomme ich z.B. im IE die Fehlermeldung „Im Textinhalt wurde ein ungültiges Zeichen gefunden“.

Jetzt möchte ich dieses Zeichen in einer Entität am Anfang der Datei abfangen und durch %u2013 ersetzen. Das habe ich mit

]\>

am Anfang der XML-Datei eine Doctype angelegt. Dann wollte ich innerhalb dieser die Entität festlegen; also so:

]\>

…was nicht ging; Fehlermeldung: „Im Textinhalt wurde ein ungültiges Zeichen gefunden.“.

Ich habe immer

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

verwendet, jetzt habe ich versucht das ganze auf

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

zu ändern und bekomme jetzt die Fehlermeldung „Ein Name beginnt mit einem ungültigen Zeichen.“ - das Zeichen wird hierbei als Quadrat dargestellt. Deshalb habe ich nun die Datei als UTF-8 Datei anstatt als ANSI gespeichert (und auch wieder UTF-8 Codierung verwendet); jetzt wird das Zeichen zwar nicht mehr als Quadrat angezeigt, die Fehlermeldung mit dem ungültigen Zeichen aber bleibt. Ein Speichern als Unicode bringt mir die Meldung „Wechseln zwischen aktueller und angegebener Verschlüsselung wird nicht unterstützt.“.

…und jetzt bin ich irgendwie am Ende meiner Weisheit.

Kann mir irgend jemand helfen?

DANKE!!!

melvont

Hallo melvont,

mit CDATA gekapselten Inhalten hab ich noch nie Probleme gehabt. Kannst du mal einen „Auszug“ des XML posten? Oder besser einen Link anbieten? (Wer weiss, wie das Zeichen hier ankommt …)

Wer wirft denn den Fehler? Beim parsen per xslt?

mfg

Dirk.Pegasus

hallo melvont,

wie stellst du sicher, dass du deine datei auch unter dem anggeben encoding abspeicherst?

…die einzige möglichkeit, die ich kenne, ein text/xml/sonstiewas-doc unter einem definierten encoding abzuspeichern ist in visualstudio.net (menu: File>Advanced Save Options…)

ein bischen sehen mir deine ergebnisse danach aus, als würde es daran hängen…

hth,

stefan

Hallo!

Ah ja, das war ein guter Tipp. Wenn ich das XML im Texteditor geöffnet, bearbeitet und wieder gespeichert hab, wurde es in einem anderen Zeichensatz gespeichert und somit waren die Zeichen nicht mehr valide. Ohne Änderungen gehts also…

Danke für Eure Antworten!

melvont