Open-Office-Dateien in HTML umwandeln
Filter im Eigenbau
Konkurrenz
Open-Office-Dateien in HTML umwandeln
Die kostenlose Officesuite Open Office (www.openoffice.org) muss sich in
Sachen Funktionalität schon lange nicht mehr hinter der kommerziellen
Konkurrenz aus dem Hause Microsoft verstecken. Dank eines innovativen
XML-Formats, in dem Open Office sämtliche Dokumente abspeichert, ist die
Weiterverarbeitung der in Open Office erstellten Dateien mit
XML-Werkzeugen ein Kinderspiel. Mittels Extensible Stylesheet Language
for Transformation, kurz XSLT, lassen sich die XML-Daten in jedes
beliebige andere XML-Format umwandeln. Auf diese Weise kann
beispielsweise die Umwandlung in eine HTML-Seite für die Ausgabe im
Internet erstellt werden.
Dieser Internet-Professionell-Workshop
zeigt, wie man ein einfaches Open-Office-Textdokument in eine HTML-Datei
konvertiert.
Open-Office-Dateiformat
Open-Office-Dateien in HTML umwandeln
Jedes Open-Office-Dokument (OO) besteht aus mehreren Dateien, die bei der Abspeicherung zu einem JAR-Archiv zusammengepackt werden:
-Mimetype: enthält den Mime-Typ für das Dokument
– content.xml:
speichert den eigentlichen Inhalt des Dokuments
– styles.xml: enthält
Informationen über die im Dokument verwendeten Formate
– meta.xml:
stellt die Metainformatonen bereit, zum Beispiel den Autorennamen
–
settings.xml: enthält OO-spezifische Einstellungen für das Dokument
Von Interesse für die Verarbeitung des eigentlichen Dokumentinhalts
mittels XSLT ist die Datei content.xml.
Auf der Heft-CD finden Sie
die Beispieldatei OO-Text_sample.sxw, die als Beispieltext für diesen
Workshop dient. Für die Erstellung einer eigenen Transformation, die den
Inhalt des Textdokuments in eine HTML-Datei überführt, entpacken Sie
zunächst die OO-Datei. Da ein JAR-Archiv als ZIP-Datei gepackt ist,
können Sie das File mit jedem beliebigen ZIP-Tool entpacken. Open Office
bietet selbst keinen Editor an, der Anwender bei der Erstellung eines
Stylesheets unterstützt. Für die Entwicklung eines eigenen
XSLT-Stylesheets empfiehlt sich daher der Einsatz eines professionellen
XML-Editors wie XML Spy von Altova (www.altova.com).
Eine simple Transformation
Open-Office-Dateien in HTML umwandeln
Die einfachste XSLT-Transformation erreicht man mit dem XSLT-Stylesheet:
Obwohl das Stylesheet keine einzige Anweisung enthält, findet sich in der Ausgabe des XSLT-Prozessors bei der Transformation der Datei content.xml der Inhalt der einzelnen Absatz-Knoten. Ursache hierfür ist, dass der XSLT-Prozessor bei der Verarbeitung des XML-Dokuments die Standardtemplates anwendet. Ein Template in einem XSLT-Stylesheet bestimmt, wie der XSLT-Prozessor beim Auffinden eines entsprechenden Knotens innerhalb des XML-Dokuments verfahren soll. Natürlich reichen die Standardtemplates nicht aus, um den Inhalt des Open-Office-Textdokuments in eine HTML-Datei zu überführen.
HTML-Grundgerüst erstellen
Open-Office-Dateien in HTML umwandeln
Damit die Datei später im Browser angezeigt wird, muss das XSLT-Stylesheet sämtliche Elemente einer HTML-Datei erzeugen. Das Basisgerüst für die Transformation eines XML-Files in eine HTML-Datei sieht wie folgt aus:
Das Stylesheet enthält lediglich ein Template. Dieses wird auf das Root-Element des zu verarbeitenden XML-Dokuments angewendet. Das
-Element teilt dem XSLT-Prozessor mit, dass es sich bei der Ausgabe um eine HTML-Datei handelt. Da das Template selbst keine Elemente aus dem zu transformierenden XML-Dokument ausgibt, wird bei der Transformation eine leere HTML-Seite erzeugt. Im Folgenden soll diese Seite mit dem Inhalt aus dem Open-Office-Textdokument gefüllt werden.
Open-Office-Namensräume
Open-Office-Dateien in HTML umwandeln
Die Struktur der OO-XML-Dateien wird mittels DTDs (Document Type Definition) bestimmt. Bei einer Standardinstallation unter Windows findet man die DTDs im Verzeichnis C:\Programme\Open
Office.org1.1.0\share\dtd\officedocument
\1_0. Open Office verwendet in seinen Dateien eine große Anzahl unterschiedlicher Namensräume. Für die Erstellung eines XSLT-Stylesheets für ein OO-Dokument ist es daher erforderlich, die Open-Office-Namensräume in das XSLT-Stylesheet einzubinden. Die Datei template.xsl stellt sämtliche für die Verarbeitung von Dokumenten notwendigen Namensraum-Präfixe bereit.
Textdokumente transformieren
Open-Office-Dateien in HTML umwandeln
Von Interesse für die Transformation sind die Namensräume office und text. Der Namensraum office enthält das Element body. Wirft man einen Blick auf die Dabei content.xml, so erkennt man, dass innerhalb des office:body-Elements der eigentliche Inhalt der Textdatei enthalten ist. Jeder Absatz im Text wird bei der Abspeicherung in einem text:p-Element abgelegt. Für die Verarbeitung des Inhalts aus dem Textdokument soll zunächst eine einfache Transformation genügen, die jeden einzelnen Absatz aus dem Dokument als
-Absatz in der HTML-Datei ausgibt. Hierfür muss die Datei template.xsl um die XSLT-Templates ergänzt werden:
Formatvorlagen
Open-Office-Dateien in HTML umwandeln
Das erste Template erstellt das Gerüst für die HTML-Datei. Innerhalb des HTML- wird das office:body-Template ausgeführt. Über die
-Anweisung durchläuft dieses Template die Absatz-Elemente innerhalb des Textdokumenten-Body. Mit der
-Anweisung wird der Inhalt eines Absatz-Elements in die HTML-Datei ausgegeben. Bereits diese Anweisungen ermöglichen eine Umwandlung in eine HTML-Datei. Verwendete Formatierungen werden ignoriert.
Um den Text später einfacher mittels XSLT zu verarbeiten, sind den Absätzen Formatvorlagen zugewiesen:
Wie der Ausschnitt aus der Datei content.xml zeigt, ist der Name der zugewiesenen Formatvorlage im Attribut text:style-name gespeichert. Neben den Standard-Formatvorlagen Überschrift und Textkörper verwendet das Beispiel zusätzlich die Formate Kurztext, Datum, Autor und Info-Link.
Mit Hilfe von
kann man innerhalb der
Das XSLT-Stylesheet transform_complete.xsl setzt Überschriften im Text als
um, gibt die als Kurztext formatierten Abschnitte kursiv aus und fügt den Inhalt der Textkörper-Absätze als normale Absätze in das HTML-Dokument ein. Außerdem fügt das Stylesheet in den Titel der HTML-Seite mittels
die Anzahl der als Überschrift formatierten Absätze des Textdokuments ein.
Eigener Filter
Open-Office-Dateien in HTML umwandeln
Da Open Office verfügt selbst über einen integrierten XSLT-Prozessor. Unter Extras, XML-Filtereinstellungen kann man mittels Stylesheets Import- und Exportfilter definieren. Erstellen Sie einen neuen Filter und geben als Endung html an. Tragen Sie als Export-XSLT die Datei transform_
complete.xsl ein. Nachdem der neue Filter erstellt wurde, können Sie seine Funktionen direkt testen. Wählen Sie hierfür den Filter aus und betätigen Sie den Button XSLTs testen.