Quiero aplicar una hoja de estilo XSLT a un documento XML usando C# y escribir la salida en un archivo.Cómo aplicar una hoja de estilo XSLT en C#
Respuesta
He encontrado una posible respuesta aquí: http://web.archive.org/web/20130329123237/http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=63
Desde el 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 compilador de confianza dice, XslTransform
es obsoleta: Uso XslCompiledTransform
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);
Desde que tomé algunas de sus respuestas para hacer la clase a la que me estoy vinculando, pensé que lo pondría como una comentar aquí. Esperemos que simplifique las cosas para las personas: http://dftr.ca/?p=318 – DFTR
Prefiero esta solución en lugar de la versión sobrecargada porque puede establecer [XmlReaderSettings] (http://msdn.microsoft.com/ es-us/library/system.xml.xmlreadersettings% 28v = vs.110% 29.aspx) y [XmlWriterSettings] (http://msdn.microsoft.com/en-us/library/system.xml.xmlwritersettings%28v = vs.110% 29.aspx) usando DTD, Schemas, etc. –
Necesito hacer esto en VB.NET (que es mi lenguaje "offspec", prefiero C#), y su respuesta me llevó a mi solución. Gracias – Eon
Aquí es un tutorial sobre cómo hacer transformaciones XSL en C# en MSDN:
http://support.microsoft.com/kb/307322/en-us/
y aquí cómo escribir archivos:
http://support.microsoft.com/kb/816149/en-us
simplemente como nota al margen: si desea hacer la validación también aquí hay otro tutorial (para DTD, XDR y XSD (= Esquema)):
http://support.microsoft.com/kb/307379/en-us/
He añadido esto solo para proporcionar más información.
Esta es una respuesta de solo enlace. Por favor incluya las partes relevantes de las páginas enlazadas. –
Sobre la base de una excelente respuesta de Daren, tenga en cuenta que este código se puede acortar significativamente mediante el uso de la adecuada XslCompiledTransform.Transform overload:
var myXslTrans = new XslCompiledTransform();
myXslTrans.Load("stylesheet.xsl");
myXslTrans.Transform("source.xml", "result.html");
(Lo siento por hacerse pasar esto como una respuesta, pero el apoyo code block
de comentarios es bastante limitado .)
En VB.NET, usted ni siquiera necesita una variable:
With New XslCompiledTransform()
.Load("stylesheet.xsl")
.Transform("source.xml", "result.html")
End With
- 1. Incluir una hoja de estilo xslt en una página html
- 2. Error al cargar hoja de estilo: el análisis de una hoja de estilo XSLT no
- 3. XSLT Hoja de estilo: cambiar texto a mayúscula
- 4. ¿Es posible utilizar una expresión Dynamic xPath en una hoja de estilo xslt?
- 5. xslt - extraer nodos hoja
- 6. Posible agregar una hoja de estilo XSLT a un documento XML serializado?
- 7. C#: ¿Cómo exportar a una hoja de cálculo de Excel? usando XSLT/LINQ/Otros métodos?
- 8. Combinar varias hojas de estilo xslt
- 9. Administración de XSLT: adjuntar metadatos a una hoja de estilo para la salida y los parámetros
- 10. Xslt cómo Estilo condicionales pares/impares filas
- 11. Capybara: ¿Cómo probar una hoja de estilo de una página?
- 12. ¿Cómo puedo reutilizar un color en una hoja de estilo?
- 13. Aplicar XSLT en XML antes de importar a Excel
- 14. Parámetros de hoja de estilos XSLT en hojas de estilo importadas
- 15. aplicar estilo viñeta a una etiqueta con C#
- 16. cómo aplicar agrupar por elementos xslt
- 17. ¿Cómo hacer una hoja de estilo específica de Chrome/Opera?
- 18. ¿Cómo obtengo mi hoja de estilo @import para anular la hoja de estilo principal?
- 19. Pasando parámetros a la hoja de estilo XSLT a través de .NET
- 20. ¿Cómo modificar la hoja de estilo predeterminada?
- 21. Aplicar estilo dinámicamente
- 22. Crear hoja de estilo dinámica en línea
- 23. Aplicar estilo WPF predeterminado
- 24. Cómo aplicar declaraciones variables de estilo C89 en gcc?
- 25. Firefox 3 no aplica mi hoja de estilo xslt, pero otros navegadores lo hacen
- 26. ¿Hoja de estilo XML predeterminada en Chrome?
- 27. ¿Quitar selectores no utilizados en una hoja de estilo CSS?
- 28. ¿Cómo aplicar un estilo a un SVG incrustado?
- 29. Aplicar estilo a todos TreeViewItem
- 30. ¿Cómo importar/incluir en la hoja de estilo de cierre?
En realidad, creo que esta es una gran pregunta, y usted proporcionó una buena respuesta. Nominando para reabrir –
Encontré Xslt confuso, así que esto me ayudó https://github.com/beto-rodriguez/SuperXml –