IT-MÜCKE

docx SAXParseException - Dokument lässt sich nicht öffnen

Beitragsdatum 05.02.2020
Letzte Aktualisierung -
Betrifft LibreOffice div. Versionen, Word-Dateiformat docx

Problem

  • Ein Dokument im docx-Format (ein spezielles Format von Microsoft Word) wurde mit LibreOffice geöffnet, bearbeitet und mehrfach gespeichert (wieder im docx-Format)
  • Bei einem anschließenden Öffnungsversuch ließ sich das Dokument nicht mehr öffnen und LibreOffice zeigte folgenden Fehler an:
    SAXParseError
    Formatfehler an Position 
    SAXParseException: '[word/document.xml line 2]: Attribute w:cstheme redefined
    ', Stream 'word/document.xml', Line 2, Column 205742(Zeile,Spalte) in der Datei entdeckt.

Ursache

  • Die genaue Ursache ist mir nicht bekannt
  • Beim Speichern und Schließen des docx-Dokuments muss es zu einem Problem gekommen sein, weswegen der oben genannte Fehler auftrat

Lösung

Da zur Lösung ein bestimmtes Tool benötigt wird, das nur für Windows vorhanden ist, gehe ich in der beschriebenen Vorgehensweise davon aus, dass ein Windows benutzt wird. Unter Linux müsste sich das Problem ähnlich beheben lassen, setzt dann aber ein entsprechendes Tool voraus.

Nach mehreren Versuchen erwies sich der folgende Weg als reproduzierbar, praktisch und schnell, um das Problem zu lösen

  1. Entpacken der docx-Datei
    • docx ist eigentlich ein Zip-Container, also eine Datei, die mehrere Dateien und Verzeichnisse in komprimierter Form enthält
    • Dieser Container muss entpackt werden. Dazu wird die Dateiendung von docx in zip umbenannt. Eine entsprechende Warnmeldung von Windows kann dabei mit OK quittiert werden.
    • Anschließend wird die Zip-Datei entpackt
  2. Öffnen der Datei word/document.xml in notepad++
    • Innerhalb des neuen Ordners mit den Daten aus der Zip-Datei gibt es einen Unterordner word
    • Darin befindet sich die Datei document.xml
    • Diese muss mit notepad++ geöffnet werden. notepad++ gibt es auch als sogenannte PortableApp und muss dann nicht installiert werden.
    • Bevor die Datei bearbeitet werden kann, muss in notepad++ das PlugIn XML-Tools installiert werden:
      • PlugInsPlugin Admin (sollte dieser fehlen, dann siehe notepad-plus-plus.org)
      • Dort das Plugin XML Tools suchen und installieren
      • Nun die Datei word/document.xml in notepad++ öffnen
      • Sie wird nun in zwei Zeilen angezeigt
      • Daher PluginsXML ToolsPretty print (XML only - with line breaks) auswählen
  3. Zur fehlerhaften Stelle springen
    • Über SearchGo to… zur in der Fehlermeldung genannten Position springen: Offset auswählen und die Column-Nummer eingeben (im Beispiel 205742)
    • In der Nähe oder genau an dieser Position findet sich ein XML-Tag, der in der Fehlermeldung genannt wird - im Beispiel w:cstheme
    • Die Zeile mit diesem Eintrag löschen
    • Speichern
    • Kommt nun eine Fehlermeldung
      XML Parsing error at line 1234...

      dann klicken Sie auf OK

    • notepad++ hat den Cursor direkt in die entsprechende Zeile gesetzt
    • Löschen Sie auch diese Zeile
    • Speichern
    • Wiederholt sich die Fehlermeldung, dann gehen Sie die letzten Schritte erneut durch - so lange, bis keine Fehlermeldung mehr erscheint.
    • Beenden Sie notepad++
  4. Datei packen und in Textverarbeitung öffnen
    • Markieren Sie nun alle Dateien und Verzeichnisse, die aus der Zip-Datei entpackt wurden und packen Sie diese wieder in eine Zip-File (z.B. über Kontextmenue 7-ZipHinzufügen zu „xxx.zip“)
    • Benennen Sie diese Datei nun um und ändern Sie die Dateiendung von zip in docx
    • Öffnen Sie diese Datei in einer Textverarbeitung

Die Datei sollte sich nun problemlos öffnen lassen.

Genereller Tipp:
Nutzen Sie - um solche Probleme zukünftig zu vermeiden - nicht docx als Dateiformat, wenn Sie nicht nur mit Word arbeiten.
Nutzen Sie dann das OpenDocument-Format odt.
Dies lässt sich in Word und LibreOffice problemlos verwenden.


Ähnliche Themen im blog:
office, xml


zurück