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.
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.