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!