Discussion:
XML-Dateien in Word einfügen
(zu alt für eine Antwort)
Ole Streicher
vor 16 Jahren
Permalink
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 und VBA. 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

p.s. Das ist ein Doppelposting; Orginal war <***@burgos.aip.de>
in microsoft.public.de.german.xml. Leider hat das Supercede zwecks
Gruppenerweiterung nicht geklappt.
Ole Streicher
vor 16 Jahren
Permalink
OK, ich mach mal die Ingrid:

Die ersten Hürden (mit VBA) habe ich genommen; jetzt kommt der XML-Teil.

Soweit ich den verschiedenen Hilfeseiten entnehmen kann, müsste ich mit

Dim myXmlDocument As XmlDocument

ein neues XML-Dokument zum (späteren) Einlesen anlegen können. Leider
beschwert sich Word da über "User-defined type not defined".

Die Word-Version ist 2003, also eigentlich schon eine XML-fähige. Oder
habe ich da was übersehen?

Viele Grüße

Ole
Rainer H. Rauschenberg
vor 16 Jahren
Permalink
Post by Ole Streicher
Die ersten Hürden (mit VBA) habe ich genommen; jetzt kommt der XML-Teil.
Soweit ich den verschiedenen Hilfeseiten entnehmen kann, müsste ich mit
Dim myXmlDocument As XmlDocument
ein neues XML-Dokument zum (späteren) Einlesen anlegen können. Leider
beschwert sich Word da über "User-defined type not defined".
Die Word-Version ist 2003, also eigentlich schon eine XML-fähige. Oder
habe ich da was übersehen?
Was spricht gegen Documents.open "Name-des-xml-Dokuments"?
Ole Streicher
vor 16 Jahren
Permalink
Hallo Rainer,
Post by Rainer H. Rauschenberg
Post by Ole Streicher
Soweit ich den verschiedenen Hilfeseiten entnehmen kann, müsste ich mit
Dim myXmlDocument As XmlDocument
ein neues XML-Dokument zum (späteren) Einlesen anlegen können. Leider
beschwert sich Word da über "User-defined type not defined".
Was spricht gegen Documents.open "Name-des-xml-Dokuments"?
Damit bekomme ich die XML-Datei als Dokument zum Editieren geöffnet
und das ist es nicht, was ich will.

Ich habe eine XML-Datei, die etwa so aussieht:

<list>
<module name="einmodul">
<parameter="p1"/>
<file name="a.dat"/>
<file name="c.xml"/>
</module>
<module name="...">...</modules>
...
<file name="a.dat">
<type>Datenfile</type>
<format>XUS</format>
</file>
...
</list>

und ich möchte diese Datei verwenden, um einen bestimmten Abschnitt
meines Dokuments upzudaten, sodass der so aussieht:

Modul einmodul
==============

Parameterliste:
- Parameter p1

Dateien:
+-------+-----------+--------+
| Name | Typ | Format |
+-------+-----------+--------+
| a.dat | Datenfile | XUS |
| c.xml | Konfig | XML |
+-------+-----------+--------+

Modul ...
=========

usw.

was bedeutet, dass ich aus der XML-Datei die ganzen Angaben
zusammentragen muss und in das Dokument einfügen. Das Zusammentragen
wäre mir am liebsten mit xpath (bzw. xslt) zu erledigen, da ich damit
schon einige Erfahrung habe, aber das ist nicht unbedingt nötig.

Wichtig ist auf jeden Fall, dass das Macro in eine *bestehende* Datei
diese Angaben einfügen soll, da die Datei als Template von einem
Dokumentationssystem generiert wird. Daher dachte ich eben daran, den
Bereich, in den die Angaben eingefügt werden, als Bookmark zu
markieren und dann aus dem XML-Dokument die entsprechenden Angaben
per VBA herauszusuchen und einzufügen.

Viele Grüße

Ole
Rainer H. Rauschenberg
vor 16 Jahren
Permalink
Post by Ole Streicher
Post by Rainer H. Rauschenberg
Post by Ole Streicher
Soweit ich den verschiedenen Hilfeseiten entnehmen kann, müsste ich mit
Dim myXmlDocument As XmlDocument
ein neues XML-Dokument zum (späteren) Einlesen anlegen können. Leider
beschwert sich Word da über "User-defined type not defined".
Was spricht gegen Documents.open "Name-des-xml-Dokuments"?
Damit bekomme ich die XML-Datei als Dokument zum Editieren geöffnet
und das ist es nicht, was ich will.
Sicher? Mit ActiveDocument.XMLNodes & Co lässt sich nichts anfangen?

Rainer "sorry für die späte Antwort, komme nicht so oft dazu hier länger
zu lesen" Rauschenberg
Ole Streicher
vor 16 Jahren
Permalink
Hallo Rainer,
Post by Rainer H. Rauschenberg
Post by Ole Streicher
Post by Rainer H. Rauschenberg
Was spricht gegen Documents.open "Name-des-xml-Dokuments"?
Damit bekomme ich die XML-Datei als Dokument zum Editieren geöffnet
und das ist es nicht, was ich will.
Sicher? Mit ActiveDocument.XMLNodes & Co lässt sich nichts anfangen?
Keine Ahnung. Letztlich habe ich das Problem wie in
<***@burgos.aip.de> beshrieben gelöst. Das ist für mich
die optimale Lösung (wenn man mal davon absieht, dass ich die
Cursorposition zerstören muss).
Post by Rainer H. Rauschenberg
Rainer "sorry für die späte Antwort, komme nicht so oft dazu hier länger
zu lesen" Rauschenberg
Dito :-)

Viele Grüße, & trotzdem danke für die Antwort.

Ole

Lesen Sie weiter auf narkive:
Loading...