Beste Weg, um zu Verarbeiten, ein Word-Dokument
Erhalte ich word-Dokumente mit der angegebenen Formatierung der entsprechenden Daten, die in Ihnen ist. Zum Beispiel, alle Header haben genau die gleiche Formatierung (Times New Roman, Schriftgröße 14 Fett).
Was ist der beste Weg, um diese MS-Word-Dokumente (.doc-oder .docx) in xml-Dokumenten? Sprache ist nicht ein Problem (ich benutz Lisp/Boost.Geist, wenn ich muss!).
- Könnten Sie näher erläutern, wie die xml-Elemente erzeugt aus dem word-docs? Wenn es rein text-basiert, würde ich schauen das konvertieren in das nur-text-ersten.
- Siehe bytes.com/topic/python/answers/24103-parsing-ms-word-document
- Siehe stackoverflow.com/questions/125222/...
- Lesen Sie auch diese sehr aufschlussreiche Artikel von Joel: Warum sind die MS Office-Datei-Formate, so kompliziert? (Und einige workarounds)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werfen Sie einen Blick auf die python-docx Bibliothek.
So, ich denke, du sagst, dass die Struktur des Dokuments ist kodiert in der Formatierung, und Sie möchten, erzeugen XML-Dateien, erfassen der Struktur, während die Inhalte im Klartext?
Wenn das so ist, müssen Sie analysieren die Dokumente, und erstellen Sie eine Daten-Struktur, die verarbeitet werden können, dann gedumpten als XML.
Für die Analyse, gibt es ein paar Optionen. Microsoft veröffentlicht haben die Spezifikationen für Ihre binäre .doc-format, das Lesen wird wesentlich sein, schreiben einen parser für Sie. Im Fall der .docx, du bist ein wenig mehr Glück, als er bereits in XML-format, so dass Sie können jede XML-parsing-Bibliothek zu Lesen, in der Datei, suchen Sie dann durch die sich ergebende Struktur für die Daten, die Sie interessiert sind in. XML-Parser sind für so ziemlich jede Sprache, ein leicht zu benutzen, das mir einfällt, ist MiniDom für Python.
Für die Erstellung von XML -, wieder ein-Objekt-Repräsentation zur XML-Bibliothek scheint der Weg zu gehen, MiniDom zum Beispiel, funktioniert das auch.
Wenn Sie nicht wollen, befassen sich mit schreiben Ihrer eigenen .doc-parser, Sie könnten die Dokumente, die durch ein Wandler erzeugt werden leichter zugänglich-format erste - wie mit Word selbst zu konvertieren .doc-Dateien zu .docx, oder ein tool, das produziert RDFs aus .docs, oder verwenden Sie ein vorhandenes word-parser wie in OpenOffice.
Verwendet eine sehr ineffiziente bedingte Suche in VBA zu wörtlich kopieren Sie das Dokument in ein zweites Dokument. Das zweite Dokument wurde dann gespeichert .xml-Erweiterung. Bekam den job zu erledigen, aber seine hässliche.
Können Sie auch versuchen, die Java-basierte Apache POI - HWPF. Es unterstützt text Extraktion. Sie haben dann erstellen Sie eigene XML-doc Caster XML oder Xstream Ihnen helfen kann, auf das Problem.
Es hängt wirklich davon ab, was genau Sie zu tun versuchen.
Der einfachste Ansatz wäre es, speichern Sie das Dokument als Flache OPC-XML (in Word "Speichern unter.." XML), und wenden Sie dann eine XSLT.
Dieser Ansatz ist am einfachsten, da es Ihnen die gesamte docx in einer einzigen XML-Datei, so dass Sie nicht haben, um Sie zu Dekomprimieren etc.
Wenn Ihre Anforderungen komplexer sind, zum Beispiel die Analyse der Formatierungen oder Stile, oder etwas zu tun mit Links, dann ein Objekt-Modell wie docx4j (Java) oder das Open XML SDK (C#) - und kein Zweifel, es gibt andere - helfen kann.