XML-Dateien in Word einfügen

25/02/2009 - 14:08 von Ole Streicher | Report spam
Hallo Gruppe,

ich möchte gerne in ein Word-Dokument Daten aus XML-Dateien einfügen.

Konkret geht es um das Erstellen einer API-Dokumentation von
Quelltext. Das Dokument ist "im Grunde fertig", allerdings eben mit
einer handgeschriebenen Dokumentation, wodurch das aktualisieren sehr
aufwàndig ist.

Daher kam die Idee, dass man die (sowieso über doxygen vorhandene)
Dokumentation als XML-Datei speichern und diese dann in das
Word-Dokument übernehmen kann. Das von doxygen auch angebotene rtf
kann ich nicht nehmen, weil die Formatierungsanforderungen dann doch
spezieller sind. So sollen z.B. die Funktionsparameter in einer
Tabelle dargestellt werden.

Ich habe bereits eine xslt-Datei, die mir die interessanten Aspekte
der Dokumentation aus der XML-Datei holt und diese als html
darstellt. Mit xslt habe ich auch einige Erfahrungen, sodass ich am
liebsten alles mit xslt machen möchte.

Der Import soll ja nicht nur einmalig erfolgen, sondern regelmàßig
wiederholt werden. Das bedeutet, dass man in Word ein Macro (?)
bastelt, welches man über ein Menü o.à. auswàhlt und das dann die alte
Doku durch die neue ersetzt.

Leider bin ich blutigster Anfànger in Sachen MS Word. Daher die
Fragen:

- ist der Weg überhaupt sinnvoll? Oder gibt es bessere?

- gibt es ein XML-Format, welches man optimal in Word importieren kann
(und das nicht Monate Lernaufwand bedeutet...)?

- wie müsste so ein Script in etwa aussehen und wo finde ich ein
Tutorial dafür?

Viele Grüße

Ole
 

Lesen sie die antworten

#1 willib
28/02/2009 - 05:27 | Warnen spam
Hallo Ole.

Mit Word2003 (Pro) gibt es das Feld INCLUDETEXT
Es erlaubt eine externe Refererenz auf XML Dateien.

This field inserts the Name element of the XML document Resume.xml and
applies the XSLT Display.xsl to it:

{ INCLUDETEXT "C:\\Resume.xml"
xmlns:a=\"resume-schema\"
\t "C:\\display.xsl"
\x a:Resume/a:Name }

Wenn das Transformationsergebnis Html oder WordML ist dann wird das auch
entsprechend in Word eingebunden.
oder als VBA Commando

Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=
_
"INCLUDETEXT """ + BeispielXMLDatei + """ " + _
" xmlns:TNS=\""" + DOMEA_TNS + "\"" " + _
" \t """ + BeispielXSLTDatei + """ " + _
" \x /TNS:DOMEA " _
, PreserveFormatting:=True

Als Hinweis: Mit relativen Pfadangaben hatte ich kein Glück

Andere Möglichkeit das auzuprobieren.
Die XML-Datei mit Word (2003pro) öffnen, dann sollte im Aufgabenbereich
rechts die Auswahl einer XSLT DAtei möglich werden. Mal ausprobieren.

Hoffe das hilft
Willi


"Ole Streicher" schrieb im Newsbeitrag
news:
Hallo Gruppe,

ich möchte gerne in ein Word-Dokument Daten aus XML-Dateien einfügen.

Konkret geht es um das Erstellen einer API-Dokumentation von
Quelltext. Das Dokument ist "im Grunde fertig", allerdings eben mit
einer handgeschriebenen Dokumentation, wodurch das aktualisieren sehr
aufwàndig ist.

Daher kam die Idee, dass man die (sowieso über doxygen vorhandene)
Dokumentation als XML-Datei speichern und diese dann in das
Word-Dokument übernehmen kann. Das von doxygen auch angebotene rtf
kann ich nicht nehmen, weil die Formatierungsanforderungen dann doch
spezieller sind. So sollen z.B. die Funktionsparameter in einer
Tabelle dargestellt werden.

Ich habe bereits eine xslt-Datei, die mir die interessanten Aspekte
der Dokumentation aus der XML-Datei holt und diese als html
darstellt. Mit xslt habe ich auch einige Erfahrungen, sodass ich am
liebsten alles mit xslt machen möchte.

Der Import soll ja nicht nur einmalig erfolgen, sondern regelmàßig
wiederholt werden. Das bedeutet, dass man in Word ein Macro (?)
bastelt, welches man über ein Menü o.à. auswàhlt und das dann die alte
Doku durch die neue ersetzt.

Leider bin ich blutigster Anfànger in Sachen MS Word. Daher die
Fragen:

- ist der Weg überhaupt sinnvoll? Oder gibt es bessere?

- gibt es ein XML-Format, welches man optimal in Word importieren kann
(und das nicht Monate Lernaufwand bedeutet...)?

- wie müsste so ein Script in etwa aussehen und wo finde ich ein
Tutorial dafür?

Viele Grüße

Ole

Ähnliche fragen