begin process at 2012 02 14 12:36:31
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VB.NET

 > DOTNET 2.0 TRANSFORMATION XSLT D'UN FICHIER XML (VB.NET)

DOTNET 2.0 TRANSFORMATION XSLT D'UN FICHIER XML (VB.NET)


 Description

Bonjour,

J'en avais plein le dos du message "Xsl.XslTransform est obsolète " dans mon Visual Studio 2005 lors de mes transformations XSLT.
J'ai trouvé la solution en C# (merci poppyto).
Je l'ai donc codé en VB.NET avec une petite modification afin de retourner en résultat soit un document XML, soit un string selon la transformation effectuée, histoire de fabriquer du RTF ou un autre format non XML.

Source

  • ''' <summary>
  • ''' Transformation XSLT d'un fichier XML
  • ''' </summary>
  • ''' <param name="reader">Le document XML a transformer</param>
  • ''' <param name="XSL_Filename">L'URI serveur du fichier xslt de transformation</param>
  • ''' <param name="Retour">type d'objet renvoyé par la fonction - Valeur : XML,TEXT</param>
  • Public Function GetTransformXSLTFile(ByVal reader As XmlDocument, ByVal XSL_Filename As String, Optional ByVal Retour As String = "XML") As Object
  • 'On charge le fichier XSL dans un XmlDocument
  • Dim XSLTDocument As XmlDocument = New XmlDocument()
  • XSLTDocument.Load(XSL_Filename)
  • 'Création du lecteur XML
  • Dim XSLTDocumentReader As XmlNodeReader = New XmlNodeReader(reader)
  • 'Création du transformateur XSLT 
  • Dim xslt As XslCompiledTransform = New XslCompiledTransform()
  • xslt.Load(XSLTDocument, Nothing, Nothing)
  • 'là où sera enregistré la transformation
  • Dim TransformOutput As StringBuilder = New StringBuilder()
  • 'paramètre d'écriture du fichier transformé
  • Dim settings As XmlWriterSettings = New XmlWriterSettings()
  • 'paramètre un peu spécial, consultez msdn
  • settings.ConformanceLevel = ConformanceLevel.Auto
  • 'xslt.OutputSettings correspond aux paramètres <xsl:output> dans votre fichier XSL
  • 'veillez à bien spécifier la sortie en html <xsl:output method="html" /> autrement
  • 'c'est "xml" par défaut et les balises vides (exemple <div></div>) seront transformées
  • 'en (</div>)
  • Dim htmlDoc As XmlWriter = XmlWriter.Create(TransformOutput, xslt.OutputSettings)
  • xslt.Transform(XSLTDocumentReader, Nothing, htmlDoc, New XmlUrlResolver())
  • If Retour = "XML" Then
  • 'On charge le fichier XMLstring dans un XmlDocument
  • Dim XmlDoc As XmlDocument = New XmlDocument()
  • XmlDoc.InnerXml = TransformOutput.ToString()
  • Return XmlDoc
  • Else
  • Return TransformOutput.ToString()
  • End If
  • End Function
''' <summary> 
''' Transformation XSLT d'un fichier XML 
''' </summary> 
''' <param name="reader">Le document XML a transformer</param> 
''' <param name="XSL_Filename">L'URI serveur du fichier xslt de transformation</param> 
''' <param name="Retour">type d'objet renvoyé par la fonction - Valeur : XML,TEXT</param> 
Public Function GetTransformXSLTFile(ByVal reader As XmlDocument, ByVal XSL_Filename As String, Optional ByVal Retour As String = "XML") As Object 
'On charge le fichier XSL dans un XmlDocument 
Dim XSLTDocument As XmlDocument = New XmlDocument() 
XSLTDocument.Load(XSL_Filename) 

'Création du lecteur XML 
Dim XSLTDocumentReader As XmlNodeReader = New XmlNodeReader(reader) 

'Création du transformateur XSLT 
Dim xslt As XslCompiledTransform = New XslCompiledTransform() 
xslt.Load(XSLTDocument, Nothing, Nothing) 

'là où sera enregistré la transformation 
Dim TransformOutput As StringBuilder = New StringBuilder() 

'paramètre d'écriture du fichier transformé 
Dim settings As XmlWriterSettings = New XmlWriterSettings() 

'paramètre un peu spécial, consultez msdn 
settings.ConformanceLevel = ConformanceLevel.Auto 

'xslt.OutputSettings correspond aux paramètres <xsl:output> dans votre fichier XSL 
'veillez à bien spécifier la sortie en html <xsl:output method="html" /> autrement 
'c'est "xml" par défaut et les balises vides (exemple <div></div>) seront transformées 
'en (</div>) 
Dim htmlDoc As XmlWriter = XmlWriter.Create(TransformOutput, xslt.OutputSettings) 
xslt.Transform(XSLTDocumentReader, Nothing, htmlDoc, New XmlUrlResolver()) 

If Retour = "XML" Then 
'On charge le fichier XMLstring dans un XmlDocument 
Dim XmlDoc As XmlDocument = New XmlDocument() 
XmlDoc.InnerXml = TransformOutput.ToString() 
Return XmlDoc 
Else 
Return TransformOutput.ToString() 
End If 

End Function 


 Conclusion

La version original c# de poppyto sur http://www.csharpfr.com/codes/TRANSFORMATION-XSLT- NET_33721.aspx.
Chez moi : http://www.saizonou.info


 Sources du même auteur

Source .NET (Dotnet) RTF TO XHTML (BALISES P, H3, STRONG, EM)
Source .NET (Dotnet) CLASSE POUR L'UTILISATION D'EXPRESSIONS RÉGULIÈRES
Source avec Zip Source .NET (Dotnet) XML VALIDATION PAR SCHÉMA (XSD)
Source avec une capture SERVERXMLHTTP : AUTOMATISATION D'ENVOI D'UN FORMULAIRE AVEC...

 Sources de la même categorie

Source .NET (Dotnet) MODIFICATION DATE DE WINDOWS EN VB.NET ET VBA par us_30
Source avec Zip Source avec une capture Source .NET (Dotnet) ENVOI DE MAIL AVEC PIÈCE JOINTE par EhJoe
Source .NET (Dotnet) AMUSONS NOUS AVEC UN LABEL ^^ par Adn56
Source avec Zip Source avec une capture Source .NET (Dotnet) UN NAVIGATEUR INTERNET EN VB.NET par azrti
Source avec Zip Source .NET (Dotnet) CONVERSION DE DEVISE MONAITAIRE VIA UN SERVICE WEB par bigmonkey7

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) EXEMPLE D'UTILISATION DU XML AVEC VB.NET par christian_grandjean
Source avec Zip Source .NET (Dotnet) PARSEUR XML par cyrilremy
Source avec Zip Source avec une capture Source .NET (Dotnet) APPLICATION GPS POUR POCKET PC par errun54
Source avec Zip Source avec une capture Source .NET (Dotnet) SILVERLIGHT : DATAGRID LINQ TO XML VWD 2008 par Afyn
Source avec Zip Source avec une capture VISUALISATION DU RÉSULTAT D'UNE TRANSFORMATION XML/XSL par alain34

Commentaires et avis

Commentaire de poppyto le 18/04/2006 14:07:45 administrateur CS

De rien ;o)

Commentaire de pierrot123 le 30/05/2006 10:54:22

slt, j'aimerai bien utiliser ta fonction mais Visual Studio 2005 ne reconnait pas les types :

XslCompiledTransform
ConformanceLevel
XmlWriterSettings

De plus, il me dit que "create" n'est pas un membre de la classe XmlWriter.

Voila merci d'avance pour t réponses
cho

Commentaire de poppyto le 30/05/2006 10:59:58 administrateur CS

>> Pierrot123

Imports System.Xml
Imports System.Xml.XPath
Imports System.Xml.Xsl

Commentaire de robcio35 le 28/03/2007 14:45:31

Merci pour cette fonction très utile. Malheureusement elle ne fonctionne pas lorsque le XSL contient des references vers d'autres XSL. Exemple : <xsl:import href="screen_0.xsl"/>. Lorsque cette ligne de code se trouve dans le XSL, alors j'obtiens l'erreur : "System.Xml.Xsl.XslLoadException: XSLT compile error. An error occurred at (0,0). ---> System.Xml.XmlException: Resolving of external URIs was prohibited.". Comme je suis nouveau en ASP.NET 2.0 (mais déjà experimenté en ASP.NET 1.1), j'apprécierais un coup de main.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Comment appliquer une transformation XSLT avec la fonction "ExportXML" [ par lateteocarre ] Bonjours à tous, Comment appliquer une transformation XSLT avec la fonction "ExportXML" ? Pour être plus précis, j'export bien un fichier XML avec l XSLT avec colonne XML inconnue [ par Sphaxs ] Salut,    J'écris car je modifie un programme de gestion d'association et je bloque sur la partie XSLT.    J'ai une base XML qui ressemble à ça :  &lt xml avec xslt [ par mohamed222222 ] Bonjour,Je voudrai modifier un fichier xml à l'aide d'un fichier xslt.Quelqu'un a t-il le code en vb.net qui permet de faire cette opération ?Merci d' fusionner 2 fichier xml avec un fichier xslt [ par mohamed222222 ] Bonjour à tous,Quelqu'un aurrait du code en vb.net qui permet de fusionner 2 fichier xml avec un fichier xslt !!!!Merci d'avance de votre aide !!!!!c  exception [ par mohamed222222 ] Salut à tous !!! Je suis entrain de déprimer avec mon fichier xslt !!!!!Je transforme un fichier xml avec un fichier xslt mais aussi je vais récupérer fichier xslt [ par mohamed222222 ] Bonjour à tous !!!!J'applique une transformation xslt à un fichier xml de 400M. Il ne veut pas faire la transformation et me renvoit l'erreur  'Syste xslt [ par mohamed222222 ] Bonjour à tous !!!!!Je souhaiterai modifier  le format d'une date en xslt.par exemple  j'ai 2007-10-20 et je souhaiterai avoir 20/10/2007Merci d'avanc remplir un dropdownlist [ par mohamed222222 ] Bonjour à tous !!!Je souhaiterai récupérer tout mes fichiers xml d'un répertoire (c:\xml\) puis les mettres dans un dropdownlist !! Quelqu'un peut m'a XML [ par Radwane37 ] Bonjour,J'aimerais savoir ce qu'est le XML et à quoi il sert s'il vous plaît?Si quelqu'un connaît, je le remercie d'avance.DEKIK Radwane.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,310 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales