Visualisation du résultat d'une transformation xml/xsl

Description

Petit programme utilisant MSXML 4 pour visualiser le résultat d'une transformation XML/XSL.
Pour cela, vous charger un documet XML et un document XSL et si les deux documents sont bien formés, le résultat est produit en format texte et sur un navigateur.

Plus d'information a http://www.conceptuel.co.uk

Source / Exemple :


Voir le fichier Zip pour voir la totalité de l'application.

Vous pouvez voir ci-dessous la partie du code qui gère la transformation:

Dim xmlDoc, xslDoc As MSXML2.DOMDocument

Set xmlDoc = New MSXML2.DOMDocument
xmlDoc.async = False
xmlDoc.LoadXML XML.Text
Set MyErr = xmlDoc.parseerror
If (MyErr.errorCode <> 0) Then
  MsgBox (frmSplash.mess.List(2) & " " & MyErr.reason)
  GoTo endtransfrom
End If

Set xslDoc = New MSXML2.DOMDocument
xslDoc.LoadXML XSL.Text
xslDoc.async = False
Set MyErr = xslDoc.parseerror
If (MyErr.errorCode <> 0) Then
  MsgBox (frmSplash.mess.List(3) & " " & MyErr.reason)
  GoTo endtransfrom
Else
  OutputMethod = textchange(XSL, "<xsl:output method=")
  If Not (OutputMethod = "xml" Or OutputMethod = "html" Or OutputMethod = "text") Then
     MsgBox (OutputMethod)
     GoTo endtransfrom
  End If
End If

On Error GoTo parseerror
ParseResult.ParseResultText.Text = xmlDoc.transformNode(xslDoc)

If OutputMethod = "text" Then
   ParseResult.Show
   GoTo endtransfrom
End If

Dim path As String
Dim fso, ts

Set fso = CreateObject("Scripting.FilesystemObject")

path = "c:\temp." & OutputMethod
If Not (FileExists%(path)) Then
   fso.CreateTextFile (path)
End If

Set File = fso.GetFile(path)
Set ts = File.OpenAsTextStream(ForWriting, TristateUseDefault)
ts.Write ParseResult.ParseResultText.Text
ts.Close

ParseBrowser.WebBrowser.Navigate path

ParseResult.Show
ParseBrowser.Show

parseerror:
If xmlDoc.parseerror.errorCode <> 0 Then
   MsgBox frmSplash.mess.List(6) + xmlDoc.parseerror.errorCode
End If

endtransfrom:
End Sub

Conclusion :


xmldoc et xsldoc sont des RichTextBox qui contiennent respectivement les documents XML et XSL.

frmSplash.mess est une comboBox ou je garde les messages d'erreurs (pas esthetique, mais c'est la première version de ma gestion des messages d'erreurs).

Textchange essaye de définir la méthode de sortie du document XSL. Cela peut être html, xml ou text.

ParseResult et Parsebrowser sont les deux forms qui afficheront le résultat respectivement au format texte et navigateur.

Vous pouvez voir aussi dans le reste du code que j'ai commencé à installer la gestion multi-langue du logiciel et mettant tous les libellés de boutons et les messages dans un document XML.
Il sera ainsi possible d'ajouter des languages sans changer le code du programme.

C'est aussi pas mal de donner la liste des bugs connus.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.