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