Como generar un archivo HTML con XML – XSL en C#
Alguna vez te a tocado manipular XML con XSL ? Bueno aquí una forma muy sencilla de como manipular ambos para realizar la transformación de ellos a un HTML en C Sharp.
Asumiendo que tienen un proyecto creado para poder realizar las pruebas necesarias, crearemos dos clases que son la principal ( que contendrá el método Main en su interior ) y otra clase con el nombre «Convertir_XML_XSL» ( puede ser renombrada como gusten ustedes ), en la cual trabajaremos la mayoría del código.
Comencemos…
Paso N ° 1 : necesitaremos contar con los archivos .xml y .xsl como introducción al tema.
Creamos un archivo con el nombre y extensión : » portafolio.xml » (O como gusten) donde en su contenido pegaremos esta estructura XML:
SUNW
Sun Microsystems
17.1
AOL
America Online
51.05
IBM
International Business Machines
116.10
MOT
MOTOROLA
15.20
Creamos otro archivo con el nombre y extensión : » stocks.xsl » (o como gusten) donde en su contenido pegaremos esta estructura XSL:
Paso N ° 2 : Agregaremos las librerías necesarias a las referencias en la clase » Convertir_XML_XSL»:
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
Paso N ° 3 : Ahora trabajaremos nuestra clase » Convertir_XML_XSL » en la cual incluiremos el siguiente código junto a su explicación ante la librería XML.
public class Convertir_XML_XSL
{
private String filename;
private String stylesheet;
public Convertir_XML_XSL (String filename, String stylesheet){
this.filename = filename;
this.stylesheet = stylesheet;
}
public void convertir_html() {
//Cargamos la hoja de estilo que utilizaremos
XslTransform xslt = new XslTransform();
xslt.Load(stylesheet);
//Carga el archivo que deseamos transformar.
XPathDocument doc = new XPathDocument(filename);
//Instanciamos XmlTextWriter con una consola de salida.
XmlTextWriter writer = new XmlTextWriter(Console.Out);
xslt.Transform(doc, null, writer, null);
writer.Close();
//Declarar y crear un nuevo objeto XslCompiledTransform
XslCompiledTransform transform = new XslCompiledTransform();
//Cargamos el Xls que utilizaremos
transform.Load(stylesheet);
//Generamos nuestro Html
transform.Transform(filename,"Resultado.html");
}
}
Paso N ° 4 : Como ultimo paso utilizaremos nuestra clase principal para realizar una instancia de la clase y utilizar el método que hemos construido.
public static void Main (string[] args)
{
String filename = "portafolio.xml";
String stylesheet = "stocks.xsl";
Convertir_XML_XSL convertir_datos = new Convertir_XML_XSL (filename ,stylesheet );
convertir_datos .convertir_html();
}
Una vez realizado cada uno de los pasos especificados anteriormente deberíamos obtener nuestro HTML, en el ejemplo se llama «Resultado.html» y se situara en la carpeta donde nosotros lo definamos.
Si todo resulto correctamente nuestro resultado sera una tabla en HTML que contendrá los datos extraídos desde el .xml :
Saludos, Hasta luego.