0/5 (4 avis)
Snippet vu 23 214 fois - Téléchargée 32 fois
''' <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
28 mars 2007 à 14:45
30 mai 2006 à 10:59
Imports System.Xml
Imports System.Xml.XPath
Imports System.Xml.Xsl
30 mai 2006 à 10:54
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
18 avril 2006 à 14:07
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.