A la hora de iniciar un proyecto, es necesario tener en cuenta la separación de datos de la presentación. Para manipular datos, lo primero que se nos viene a la mente es la necesidad de utilizar algún gestor de bases de datos.
Muchas veces, pensar en guardar los datos en simples archivos xml puede ser una gran opción. Este lenguaje nos ofrece la posibilidad de manipular la presentación por medio de los estilos xsl. Con esta combinación, tenemos todo lo necesario para separar los datos de la presentación.
Vamos a un ejemplo.
Supongamos que queremos armar un listado de libros, nuestro archivo xml podría tener el siguiente formato:
<libros>
<libro editorial="SEIX BARRAL" isbn="9789507317248">
<titulo>PAPELES DE TRABAJO</titulo>
<autor>SAER JUAN JOSE</autor>
</libro>
<libro editorial="EDHASA" isbn="9789876281652">
<titulo>LA REVOLUCION DE LA PILDORA</titulo>
<autor>FELITTI KARINA</autor>
</libro>
<libro editorial="EDICIONES B" isbn="9789876273350">
<titulo>HOMBRES O MACHOS</titulo>
<autor>SANCHEZ MARIA ISABEL</autor>
</libro>
</libros>
Si bien es bastante claro cual es cada dato, vamos a queres mostrarlo a nuestros visitantes en un formato más amigable, para lo cual podríamos querer tener el siguiente html.
<h1>Listado de libros</h1> <ul> <li>PAPELES DE TRABAJO de SAER JUAN JOSE</li> <li>LA REVOLUCION DE LA PILDORA de FELITTI KARINA</li> <li>HOMBRES O MACHOS de SANCHEZ MARIA ISABEL</li> </ul>
Acá es donde entra en juego el xpath. Para realizar este listado en una plantilla xsl, el código necesario para tener separadas la capa de presentación de los daots, sería el siguiente:
<h1>Listado de libros</h1>
<ul>
<xsl:for-each select="/libros/libro">
<li><xsl:value-of select="titulo"/> de <xsl:value-of select="autor"/></li>
</xsl:for-each>
</ul>
Si prestan atención al ejemplo, el acceso a los datos del xml se logra accediendo a los elementos anidados medianta la barra (/).
Esta forma de recorrer un archivo xml se llama xpath. Si quisieramos tener acceso a todos los autores de nuestro listado, bastaria con “/libros/libro/autor” y si quisieramos tener acceso a la editorial, podemos hacerlo con “/libros/libro/@editorial”.
En el caso de querer traer solo el titulo del primer libro, lo indicaríamos de la siguiente manera: “/libros/libro[1]/titulo” y para tener acceso al libro que sea de la editorial Edhasa, sería una consulta asi: “/libros/libro[@editorial = 'EDHASA']/titulo”.
Con estos ejemplos, queremos dar un vistazo rápido de la potencia que le podemos dar al xml y abrir la puerta a investigar este lenguaje que puede ser una robusta alternativa a las bases de datos.

Comentarios