Hallo,
ich konzipiere zurzeit eine OO Basic Exportroutine, die ein komplettes Writer Dokument in ein spezielles XML Format exportiert (XSLT Filter haben sich für meine Zwecke als ungeeignet herausgestellt). Das Dokument enthält auf der ersten Seite ein Formular mit Metadaten, es folgen Kapitel, Unterkapitel, Text (in verschiedenen Formatierungen), Bilder, Tabellen, OLE Objekte in beliebiger Reihenfolge.
Das Ganze möchte ich nun sequentiell durchparsen, dabei natürlich erkennen, was dort jeweils steht und entsprechend rausschreiben.
Kann mir jemand einen Tipp oder Beispielcode geben, wie das am besten zu realisieren ist?
danke und gruß, harrybo
OO Writer dokument komplett parsen
Moderator: Moderatoren
Hier mal ein erster Ansatz, den ich mittlerweile habe:
Im obigen Beispiel soll zunächst der Text des Absatzes in eine externe Datei (#giExportXML) geschrieben werden. Später wird dann genauer geschaut werden müssen, was das Textelement enhält.
Ich bin leider nicht vertraut mit dem Handling des Objekts Textelement. Kann da jemand helfen?
gruß, harrybo
Code: Alles auswählen
sub checkDoc
Dim vDoc As Object
Dim Enum As Object
Dim TextElement As Object
vDoc = ThisComponent()
'msgbox vDoc.dbg_properties
Enum = vDoc.Text.createEnumeration ' Enumeration-Objekt erzeugen
While Enum.hasMoreElements() ' Schleife über alle Text-Elemente
TextElement = Enum.nextElement()
'msgbox TextElement.dbg_Properties
If TextElement.supportsService("com.sun.star.text.TextTable") Then
' Textelement ist eine Tabelle
print #giExportXML, TextElement.???
End If
If TextElement.supportsService("com.sun.star.text.Paragraph") Then
' Textelement ist ein Absatz
print #giExportXML, TextElement.???
End If
Wend
end sub
Ich bin leider nicht vertraut mit dem Handling des Objekts Textelement. Kann da jemand helfen?
gruß, harrybo