Mit VB.NET XML/ XSLT in RTF Dokumente konvertieren (MS Word kompatibel)

Wenn Ihr mit XML-Dateien arbeitet werdet Ihr sicher ganz schnell zu XSLT (eXtensible Stylesheet Language Transformation) kommen, die diese Dateien z.B. für einen Browser in HTML transformieren.

Werden aber diese XML-Dateien in einem Textprogramm wie MS Word geöffnet, so sieht man wieder nur XML und die ganze Arbeit mit dem XSL scheint umsonst.

Wie bekomme ich diese Dateien trotzdem in mein Textverarbeitungsprogramm hinein bzw. wie erzeuge ich eine Datei die dort vernünftig dargestellt werden kann?

Die Lösungs heißt RTF und im folgenden Tutorial zeige ich Euch wie das geht.
1. Zuerst lesen wir das XML File in ein DataSet ein

ds = New DataSet()
ds.ReadXml(XmlFullPath)

2. Jetzt machen wir aus dem Dataset ein XML-Objekt

xmlDoc = New XmlDataDocument(ds)

3. Dann legen wird die Root des XML-Objektes fest

root = xmlDoc.DocumentElement

4. Dort erzeugen wir einen XPath Navigator, der von da durch das XML navigiert

nav = root.CreateNavigator()

5. Dann erzeugen wir ein XslCompiledTransform Objekt, um in dieses das XSLT zu laden

xslCompTran = New XslCompiledTransform()
xslCompTran.Load(XslFullPath)

6. Nun erstellen wir einen XmlTextWriter mit unserem Zielpfad

writer = New XmlTextWriter(strRtfFullPath, System.Text.Encoding.Default)

7. Und schließlich transformiert das XSLCompiledTranfrom-Objekt (das mit unserem XSL geladen wurde) unser XML mit Hilfe des Navigators in in ein RTF- Dokument mit unserem Zielpfad.

xslCompTran.Transform(nav, writer)

8. Nach dem Transformieren müssen wir nun nur noch den Writer wieder schließen

writer.Close()

9. und die Objekte auf Nothing setzen

nav = Nothing
root = Nothing
xmlDoc = Nothing
ds = Nothing

Ich hoffe, dass Euch dieses Tutorial gefallen hat und freue mich über Rückmeldungen!