Cómo aplicar una hoja de estilo XSLT en C#
Quiero aplicar una hoja de estilo XSLT a un documento XML usando C# y escribir el resultado en un archivo.
Aceptado
Encontré una posible respuesta aquí: http://web.archive.org/web/20130329123237/http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=63
Del artículo:
XPathDocument myXPathDoc = new XPathDocument(myXmlFile) ;
XslTransform myXslTrans = new XslTransform() ;
myXslTrans.Load(myStyleSheet);
XmlTextWriter myWriter = new XmlTextWriter("result.html",null) ;
myXslTrans.Transform(myXPathDoc,null,myWriter) ;
Editar:
Pero mi confiable compilador dice que XslTransform
está obsoleto: use XslCompiledTransform
en su lugar:
XPathDocument myXPathDoc = new XPathDocument(myXmlFile) ;
XslCompiledTransform myXslTrans = new XslCompiledTransform();
myXslTrans.Load(myStyleSheet);
XmlTextWriter myWriter = new XmlTextWriter("result.html",null);
myXslTrans.Transform(myXPathDoc,null,myWriter);
Según la excelente respuesta de Daren, tenga en cuenta que este código se puede acortar significativamente utilizando la sobrecarga XslCompiledTransform.Transform adecuada :
var myXslTrans = new XslCompiledTransform();
myXslTrans.Load("stylesheet.xsl");
myXslTrans.Transform("source.xml", "result.html");
(Perdón por presentar esto como una respuesta, pero el code block
apoyo en los comentarios es bastante limitado).
En VB.NET, ni siquiera necesitas una variable:
With New XslCompiledTransform()
.Load("stylesheet.xsl")
.Transform("source.xml", "result.html")
End With