Ratgeber · grundlagen
Wie eine DOCX aufgebaut ist: Office Open XML erklärt
Eine DOCX ist kein einzelnes Dokument, sondern ein ZIP-Archiv aus XML-Dateien. Wie Office Open XML aufgebaut ist, was in document.xml steht, wie Formatierung gespeichert wird und warum sich daraus problemlos reiner Text extrahieren lässt.
Wenn du eine Word-Datei mit der Endung .docx doppelklickst, öffnet sich ein fertig formatiertes Dokument, und alles wirkt wie aus einem Guss. Der erste Eindruck täuscht aber: Hinter dieser einen Datei steckt kein monolithisches Dokument, sondern ein ganzer Ordner voller kleiner Textdateien, sauber in einem Archiv verpackt. Wenn du verstehst, wie dieser Aufbau funktioniert, wird sofort klar, warum sich der reine Text aus einer DOCX so verlässlich herausziehen lässt, und warum ein Werkzeug wie docxtxt.de das komplett in deinem Browser erledigen kann.
Eine DOCX ist in Wirklichkeit ein ZIP-Archiv
Das überraschendste Detail zuerst: Eine .docx ist technisch gesehen ein ganz normales ZIP-Archiv. Du kannst das selbst ausprobieren. Kopiere eine Word-Datei, benenne die Kopie von bericht.docx in bericht.zip um und entpacke sie mit dem Datei-Explorer oder einem Programm wie 7-Zip. Statt einer einzelnen Datei findest du dann einen Ordnerbaum mit mehreren XML-Dateien und Unterordnern.
Dieser Aufbau ist kein Zufall, sondern Absicht. Das Format heißt Office Open XML (kurz OOXML), und es wurde bewusst so entworfen, dass es aus offenen, lesbaren Bausteinen besteht: ein ZIP-Container als Verpackung, XML-Dateien als Inhalt. XML (Extensible Markup Language) ist reiner Text mit Auszeichnungselementen in spitzen Klammern, ähnlich wie HTML. Genau deshalb kann jedes Programm, das ZIP entpacken und XML lesen kann, an den Inhalt einer DOCX herankommen, ganz ohne Microsoft Word.
Die Bestandteile im Inneren
Wenn du die entpackte DOCX durchsiehst, findest du eine überschaubare Struktur. Die wichtigsten Teile:
| Pfad im Archiv | Aufgabe |
|---|---|
[Content_Types].xml | Verzeichnis aller Dateitypen im Archiv (welcher Teil ist XML, welcher ein Bild) |
_rels/.rels | Beziehungen auf oberster Ebene, verweist auf das Hauptdokument |
word/document.xml | Der eigentliche Fließtext mit Absätzen und Textläufen |
word/styles.xml | Definition aller Formatvorlagen (Überschriften, Standard, Zitat) |
word/_rels/document.xml.rels | Verknüpfungen des Dokuments zu Bildern, Fußnoten, Kopfzeilen |
word/media/ | Ordner mit eingebetteten Bildern (PNG, JPEG) |
docProps/core.xml | Metadaten wie Autor, Titel, Erstellungsdatum |
Der Kern ist word/document.xml. Dort steht der Text, den du beim Öffnen siehst. Alles andere sind Hilfsdateien: Styles beschreiben das Aussehen, die Media-Dateien halten die Bilder, die Beziehungsdateien (_rels) verknüpfen die Teile miteinander. Für die reine Textextraktion ist fast ausschließlich document.xml relevant.
Wie Text in document.xml gespeichert wird
Innerhalb von document.xml ist der Text in eine feste Hierarchie eingebettet. Drei Elemente musst du dafür kennen, alle aus dem WordprocessingML-Namensraum mit dem Präfix w::
w:psteht für einen Absatz (paragraph). Jeder Absatz in deinem Dokument ist ein solches Element.w:rist ein Textlauf (run). Ein Absatz kann mehrere Läufe enthalten, immer dann, wenn sich innerhalb des Absatzes die Formatierung ändert (etwa ein einzelnes fett gesetztes Wort).w:tist der eigentliche Textknoten (text). Erst hier steht das, was du liest.
Ein einfacher Absatz mit dem Satz “Hallo Welt” sieht im XML etwa so aus:
<w:p>
<w:r>
<w:t>Hallo </w:t>
</w:r>
<w:r>
<w:rPr>
<w:b/>
</w:rPr>
<w:t>Welt</w:t>
</w:r>
</w:p>
Hier siehst du einen Absatz (w:p) mit zwei Textläufen. Der erste Lauf enthält “Hallo ” ohne besondere Formatierung. Der zweite Lauf enthält “Welt” und hat ein w:rPr-Element (run properties) mit dem Kind w:b, das den Text fett auszeichnet. Der lesbare Inhalt steckt ausschließlich in den beiden w:t-Knoten. Wenn du sie aneinanderhängst, ergibt sich wieder “Hallo Welt”.
Genau das ist der Schlüssel zur Textextraktion: Der Klartext liegt sauber getrennt in w:t-Knoten, umgeben von Struktur- und Formatelementen, die man beim Herausziehen einfach ignorieren kann.
Formatierung liegt getrennt vom Text
Ein zentrales Gestaltungsprinzip von OOXML ist die Trennung von Inhalt und Darstellung. Das “Was” (der Text) und das “Wie” (die Formatierung) sind bewusst voneinander gelöst.
Es gibt zwei Ebenen der Formatierung. Direkte Formatierung steht als w:rPr (für Läufe) oder w:pPr (für Absätze) direkt beim Text, so wie oben das w:b für Fettschrift. Formatvorlagen dagegen leben in einer eigenen Datei, word/styles.xml. Dort ist zum Beispiel definiert, wie eine Überschrift der Ebene 1 aussieht (Schriftgröße, Farbe, Abstände). Im Dokument selbst verweist ein Absatz dann nur über eine ID auf diese Vorlage, statt alle Eigenschaften erneut aufzuzählen.
Für dich als Nutzer bedeutet diese Trennung: Der eigentliche Text ist von der optischen Gestaltung unabhängig. Man kann den Klartext gewinnen, ohne sich um Schriftarten, Farben oder Abstände zu kümmern, weil diese Angaben in separaten Elementen und Dateien liegen. Genau darum geht es auch im Vergleich zwischen den beiden Formaten, den du im Ratgeber DOCX und TXT im Vergleich findest.
Woher das Format stammt
Office Open XML kam mit Word 2007 auf und löste das alte Binärformat .doc als Standard ab. Microsoft reichte die Spezifikation zur Standardisierung ein, und sie wurde 2006 von der Ecma International als ECMA-376 veröffentlicht. Kurz darauf, im Jahr 2008, folgte die internationale Normierung durch die ISO und die IEC als ISO/IEC 29500.
Dass das Format offen dokumentiert und genormt ist, hat einen praktischen Nutzen: Die genaue Bedeutung jedes Elements wie w:p oder w:t ist nachlesbar festgeschrieben. Deshalb können unabhängige Programme, Bibliotheken und Online-Werkzeuge DOCX-Dateien zuverlässig lesen, ohne raten zu müssen, wie der Inhalt kodiert ist.
Wie die Textextraktion tatsächlich abläuft
Aus dem bisher Gesagten ergibt sich der Ablauf fast von selbst. Um reinen Text aus einer DOCX zu gewinnen, sind drei Schritte nötig:
- Das ZIP-Archiv entpacken, um an
word/document.xmlzu kommen. - Diese XML-Datei einlesen und ihre Baumstruktur durchlaufen.
- Alle
w:t-Textknoten einsammeln und in der richtigen Reihenfolge aneinanderhängen, wobei Absatzgrenzen (w:p) zu Zeilenumbrüchen werden.
Genau nach diesem Prinzip arbeitet die Bibliothek mammoth.js, die auf DOCX spezialisiert ist. Sie liest die XML-Struktur des Dokuments, wandelt Absätze und Läufe in ein sauberes Ergebnis um und ignoriert dabei alles, was nur der Darstellung dient. mammoth.js legt bewusst den Fokus auf semantischen Inhalt statt auf eine pixelgenaue Nachbildung des Layouts, was für die Umwandlung in Klartext genau richtig ist.
docxtxt.de nutzt mammoth.js direkt in deinem Browser. Deine Datei wird nicht hochgeladen, sondern lokal geöffnet: Der Browser entpackt die DOCX, mammoth.js läuft über die XML-Struktur und extrahiert die w:t-Textknoten, und heraus kommt reiner Text, den du kopieren oder speichern kannst. Wie dieser Weg im Detail aussieht, beschreibt der Ratgeber Text aus Word extrahieren.
Abgrenzung zum alten .doc-Format
Vor OOXML war das binäre .doc-Format der Standard von Word. Der Unterschied ist grundlegend. Eine .doc-Datei ist ein Binärformat: eine kompakte, für Menschen nicht lesbare Abfolge von Bytes, deren Struktur eng an die internen Datenstrukturen des Programms angelehnt war. Wer den Inhalt herausziehen wollte, musste dieses komplexe Binärlayout Byte für Byte nachvollziehen, was fehleranfällig und aufwendig ist.
Eine .docx dagegen ist, wie du jetzt weißt, ein ZIP-Archiv aus lesbaren XML-Textdateien. Das macht den Inhalt transparent und mit Standardwerkzeugen zugänglich. Für die Textextraktion ist das ein enormer Vorteil: Statt ein undokumentiertes Binärformat zu entschlüsseln, muss man nur ein Archiv entpacken und XML lesen, zwei allgegenwärtige und gut verstandene Techniken. Genau deshalb funktioniert die Umwandlung von DOCX in TXT so verlässlich, während sie beim alten .doc deutlich mehr Aufwand verlangte.
Fazit
Eine DOCX ist ein ZIP-Container aus XML-Dateien. Der Text steht in word/document.xml, verpackt in Absätze (w:p) und Textläufe (w:r) mit den eigentlichen Textknoten (w:t). Die Formatierung liegt getrennt davon in Elementen wie w:rPr und in word/styles.xml. Weil das Format als ECMA-376 und ISO/IEC 29500 offen genormt ist und aus lesbaren Bausteinen besteht, lässt sich der Klartext sauber herausziehen, indem man das Archiv entpackt und die w:t-Knoten einsammelt. Genau das macht docxtxt.de lokal in deinem Browser. Wenn du dich anschließend fragst, was reiner Text eigentlich ist und welche Eigenheiten das TXT-Format hat, hilft dir der Ratgeber Plain Text und das TXT-Format weiter.
Hast du einen Fehler entdeckt oder einen Quellen-Hinweis für uns? Schreib gern an info@akara-solutions.de.
Quellen
- ECMA-376: Office Open XML File Formats
- ISO/IEC 29500: Office Open XML
- mammoth.js Dokumentation (GitHub mwilliamson/mammoth.js)
Korrekturen oder bessere Quellen? Schreib an info@akara-solutions.de. Änderungen landen mit Datum auf /korrekturen.
