220
2038
 
Varios
Articulos y manuales de wpf, html, crystal report, gadget...
Enlaces
Encuentra links a manuales o paginas relacionadas
Visual C#
Creado en el 2001 y actualmente se se encuentra en su version 4.0
Visual Basic
Visual Basic es un lenguaje de programación desarrollado por Alan Cooper para Microsoft.
SQL Server
Basado en el lenguaje Transact-SQL, y específicamente en Sybase IQ
ASP .Net
Apareció en enero de 2002 con la versión 1.0 del .NET Framework
JavaScript
JavaScript es un lenguaje de programación interpretado, es decir, que no requiere compilación
Utilidades
Herramientas y utilidades que podras usar en tus ambientes de desarrollo. Hazte la Vida mas Facil!!!
Ex empleado de Apple describe duro sistema de trabajo y "ley del silencio"
El uso de blogs hasta lo que pueden o no pueden comentar con sus cónyuges en sus hogares
7/15/2010 6:57:11 AM
El iPhone 4, no apto para zurdos
Las críticas sobre la calidad de la recepción cuando se sostiene con la mano izquierda
6/26/2010 8:35:23 PM
Nuevo Hotmail a partir de hoy
Exchange ActiveSync en móviles como iPhone, BlackBerry, o Windows Phone
6/17/2010 12:41:25 PM
Microsoft Office 2010 es ahora gratuito en versión web
Office.live.com
6/10/2010 6:34:23 AM
Se inicia el Campus Party 2010
Del 28 de Junio al 4 de Julio se inicia la tercera edición de la fiesta de la tecnología en Colombia, que se caracteriza por ser un foro para aprender.
6/29/2010 2:32:59 PM
Novedades en Reporting Services 2008 R2
Nuevas funcionalidades de SSRS 2008 R2 (Maps, Report Builder 3.0, cambios de skin y mucho más).
2/4/2010 8:08:54 AM
Uso del diseñador de SharePoint y Visual Studio con Microsoft Business Connectivity Services en SharePoint 2010
crear Tipos de contenido externos para conectarse a los sistemas externos.
2/4/2010 8:04:53 AM
Creación de soluciones Office con Visual Studio 2010 y Office 2010
Webcast
1/10/2010 10:44:50 PM
 
   
Que son los archivos XSL y para que nos sirven
Crear un formulario dinámicamente a partir de un XML usando XSL
Javier Vera Torres
Que son los archivos XSL y para que nos sirven
Crear un formulario dinámicamente a partir de un XML usando XSL
Visitas:2038
Fecha publicación:11/11/2009

El objetivo de este artículo es mostrar cómo se puede crear un formulario HTML dinámicamente a partir de un archivo XML con la ayuda de un XSL.

Primero que todo iniciemos con la definición formal.

XSL (siglas de Extensible Stylesheet Language, expresión inglesa traducible como "lenguaje extensible de hojas de estilo")

Ahora la no formal.

Lenguaje basado en el estándar XML que permite dar un formato o estilo a un archivo XML, una analogía seria un XSL es al XML como un CSS es aun HTML.

Y ahora al grano.

Voy a hacer un ejemplo muy sencillo para entender el concepto.

Digamos que requerimos mostrar un formulario, menú, lista etc. partiendo de una fuente de datos XML, ojo con esto porque es lo más importante ya que significa que puede venir de otro sistema, podría ser la definición fija de un formato o simplemente un estándar manejado en una compañía.

Para el ejemplo vamos a crear una evaluación la cual está conformada por preguntas con 5 opciones y una única respuesta, las cuales reposan en un XML.

<?xml version="1.0" encoding="utf-8" ?>

<Area Titulo="Evaluacin anual">

<Preguntas Titulo="Preguntas de unica seleccin">

<Pregunta Titulo="Cree que este ao fue productivo" Descripcion="Desde el punto de vista de objetivos cumplidos">

<Opcion Titulo="Exelente" Descripcion="Se cumplieron con todos los objetivos de forma satisfactoria"/>

<Opcion Titulo="Bueno" Descripcion="Se cumplieron la mayoria de los objetivos"/>

<Opcion Titulo="Regular" Descripcion="Se cumplieron con algunos objetivos"/>

<Opcion Titulo="Malo" Descripcion="Se cumplieron con muy pocos objetivos"/>

</Pregunta>

<Pregunta Titulo="Como le parecio el entorno de trabajo" Descripcion="Espacio y comodidad">

<Opcion Titulo="Exelente" Descripcion="Las instalaciones son perfectas en espacio y comodidad"/>

<Opcion Titulo="Bueno" Descripcion="Las instalaciones permiten mi desempeo"/>

<Opcion Titulo="Regular" Descripcion="En algunas ocaciones mi trabajo se ve afectado"/>

<Opcion Titulo="Malo" Descripcion="Mi trabajo se ve afectado constantemente"/>

</Pregunta>

<Pregunta Titulo="Pregunta nueva" Descripcion="Compaeros, espacio ">

<Opcion Titulo="Exelente" Descripcion="Cumple con todo y mas"/>

<Opcion Titulo="Bueno" Descripcion="Cumple"/>

<Opcion Titulo="Regular" Descripcion="Aveces cumple"/>

<Opcion Titulo="Malo" Descripcion="no cumple con nada"/>

</Pregunta>

</Preguntas>

</Area>

Ahora crearemos un archivo XSL que permita darle un formato al anterior archivo.

<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- Variables por parametros -->

<xsl:param name="Fecha" ></xsl:param>

<xsl:template match="/">

<table border="1">

<tr>

<td colspan="5">

<h1>

<xsl:value-of select="Area/@Titulo"/>

</h1>

<xsl:value-of select="$Fecha"/>

</td>

</tr>

<tr>

<td colspan="5">

<h2>

<xsl:value-of select="Area/Preguntas/@Titulo"/>

</h2>

</td>

</tr>

<xsl:for-each select="Area/Preguntas/Pregunta">

<tr>

<td >

<h5>

<xsl:value-of select="@Titulo"/>

</h5>

<h6>

<xsl:value-of select="@Descripcion"/>

</h6>

</td>

<xsl:for-each select="Opcion">

<td>

<xsl:value-of select="@Titulo"/>

<input id="Radio1" checked="checked" name="R1" type="checkbox" value="@Titulo" />

</td>

</xsl:for-each>

</tr>

</xsl:for-each>

</table>

</xsl:template>

</xsl:stylesheet>

Como pueden observar XSL permite el envió de parámetros creación de sentencias for  para recorrer nodo y esto no es nada tiene muchísimo más como agregar javascript .

Acá les agrego una buena referencia.

Bueno y finalmente lo mejor el código en C# que permite leer el XML y aplicarle la transformación con el envio del parámetro fecha.

XslCompiledTransform xslTrans = new XslCompiledTransform();

xslTrans.Load(Server.MapPath("~/Preguntas.xsl"));

XsltArgumentList xslArg = new XsltArgumentList();

xslArg.AddParam("Fecha", "", DateTime.Now.ToString());

// Se realiza la transformacin

StringWriter sw = new StringWriter();

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(Server.MapPath("~/Fuente.xml"));

xslTrans.Transform(xmlDoc, xslArg, sw);

string strControls = sw.ToString();

// Se pintan los controles en la pgina

Control ctrl = Page.ParseControl(strControls);

this.PlaceHolder1.Controls.Add(ctrl);

Y de no olvidar los namespace

using System.Xml.Xsl;

using System.Xml;

using System.IO;

Y agregar un PlaceHolder del toolbox a nuestra pagina o control.

Es muy claro que esto se podría hacer en un control de usuario o algo por el estilo y leer la preguntas de una base de datos, pero y que pasa si se requiere agregar una nueva pregunta o una nueva opción o simplemente cambiar el radiobutton por un check.

Posiblemente sea necesario crear un administrador de preguntas con conexión a la base de datos y seguramente modificar el control de usuario.

Pues en este escenario es muy útil el XSL ya que solo cambiamos   type="radio" por type="checkbox" en el archivo XSL sin necesidad de compilar o abrir Visual Studio

 

 

De igual forma si queremos agregar otra pregunta solo la agregamos en el XML.

 

Espero que les sea útil.

 

lokyto29
Chevere ...tu explicada creeme q no he trabajado muxo con los xml .pero con esta esplicacion me has ayudado..
1/27/2010 8:53:51 PM
david
mejor explicado n podia estar te agradezco,lo sencillo que lo diste a entender.
2/25/2010 9:06:31 PM
Agregar comentarios
Autor:
Comentario:
codigo de la imagen

Fecha de publicación: 11/11/2009 9:29:39 PM