Ciao.

Mi trovo col seguente problema: dato un tracciato XML, trasformarlo applicando un foglio di stile XSLT e ottenere un nuovo XML.

In realtà non si tratta di nulla di particolare, se non per il fatto che ho un problema di encoding. Partendo da un XML UTF-8 ottengo un XML risultante UTF-16.
Ho anche capito perchè, e si capisce bene dal codice VB.NET (in una pagina ASP.NET) che ho usato:

codice:
dim xmlDoc as XmlDocument
xmlDoc = new XmlDocument
xmlDoc.load("c:\fileDiPartenza.xml")
Dim nav As XPath.XPathNavigator
nav = xmlDoc.CreateNavigator
Dim sw As New System.IO.StringWriter
Dim xslt As New XslTransform
xslt.Load("c:\foglioTrasformatore.xsl")
xslt.Transform(nav, Nothing, sw, Nothing)
Dim pHelp As String
pHelp = sw.ToString()
Response.Write(pHelp.ToString())
Il problema sta nell'uso dello StringWriter che utilizza una codifica UTF-16.
Quindi nel momento in cui memorizzo nello StringWriter il risultato dell'elaborazione, anche se nel foglio XSLT ho messo come encoding di output UTF-8, questa direttiva viene ignorata.

Come posso risolvere? Qualche idea?


Grazie.