Einzelnen Beitrag anzeigen

Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#1

XML-Datei on the fly korrigieren

  Alt 8. Okt 2010, 09:08
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
  Mit Zitat antworten Zitat