Moin,
ich bekomme von externer Quelle (die ich nicht ändern kann)
XML-Dateien, die nicht immer ganz dem Standard entsprechen. "Nicht ganz" heißt konkret, dass hin und wieder mal ein  im Text eines Knotens enthalten ist. Die hexadezimale Notation ist formal korrekt, die
XML-Datei ist erstmal valide, doch exakt dieses Zeichen darf (zusammen mit ein paar anderen) in einer
XML-Datei nicht enthalten sein - zumindest laut dem
W3C.
Der
MSXML-Parser steigt dabei aus und wirft eine Fehlermeldung "illegal character". Prinzipiell hat er ja Recht, aber das ist für meine Anwender wenig zufriedenstellend. Diese wünschen sich, dass ich diese "illegalen Einwanderer" still entferne und mit dem Rest der Daten fortfahre. Der IE zum Beispiel kann das. Der zeigt mir die
XML-Datei korrekt an - wenn auch unter Protest - und weist auf das fehlerhafte Zeichen hin. So weit würde ich auch gern kommen.
Wie kann ich hier sinnvoll vorgehen? Einen Event-Handler habe ich nicht gefunden, der es mir erlauben würde, das Zeichen zu entfernen und den
XML-Parser zufrieden zu stellen. Immerhin liefert der Parser ja die Fehlerklasse "illegal character" sowie Zeile und Spalte des fehlerhaften Zeichens. Ich könnte mir jetzt einen eigenen Validator bauen, der den
XML-Parser anstößt, dessen Fehlermeldungen auswertet, die Quelldaten entsprechend korrigiert und das so lang tut, bis der Datenstrom fehlerfrei ist. ... Aber das wird doch bestimmt eleganter gehen, oder? (Sagt jetzt bitte nicht "nein" *g*)
Daniel R. Wolf
mit Grüßen aus Hamburg