Francesco Geri

Il blog di Francesco Geri
posts - 94, comments - 165, trackbacks - 2

Trasformazione di un file XML in un file HTML tramite un XSLT

La trasformazione via codice di un file XML in HTML tramite file XSLT è molto semplice (cito liberamente da MSDN):

 

' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")

' Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html")

 

Il codice riportato lavora su file fisici, messi da qualche parte.
Se però non si vuole sfruttare il file system, si può usare una funzione come la seguente, che consente di fare la trasformazione senza aver file fisici in gioco.

 

  Function TransformXML(ByVal xDoc As Xml.XmlDocument, ByVal xsltText As String) As String

    ' Carica l'xslt

    Dim xslt As New Xml.Xsl.XslCompiledTransform()

    Dim xsltStringReader As New IO.StringReader(xsltText)

    Dim xsltXmlReader As New Xml.XmlTextReader(xsltStringReader)

    xslt.Load(xsltXmlReader)

    ' Crea il reader per l'XML in XDOC

    Dim xDocStringReader As New IO.StringReader(xDoc.OuterXml)

    Dim xDocXmlReader As New Xml.XmlTextReader(xDocStringReader)

    ' Crea il writer per l'html

    Dim htmlStringBuilder As New Text.StringBuilder()

    Dim htmlStringWriter As New IO.StringWriter(htmlStringBuilder)

    Dim htmlXmlReaderWriter As New Xml.XmlTextWriter(htmlStringWriter)

    ' Esegue la trasformazione

    xslt.Transform(xDocXmlReader, htmlXmlReaderWriter)

    ' Retuisce il contenuto html

    Return htmlStringBuilder.ToString()

  End Function

Print | posted on mercoledì 2 aprile 2008 05:55 | Filed Under [ Tips .Net XML ]

Powered by:
Powered By Subtext Powered By ASP.NET