21 de Enero de 2006 (admin)Elemento <xsl:value-of>La etiqueta <xsl:value-of> puede ser usada para extraer los valores de un elemento XML y añadirlo a la salida de una transformación: Veamos un ejemplo simple de un archivo xsl: <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>Mi colecion de CDs</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Titulo</th> <th>Artista</th> </tr> <tr> <td><xsl:value-of select="catalogo/cd/titulo"/></td> <td><xsl:value-of select="catalogo/cd/artista"/></td> </tr> </table> </body> </html> </xsl:template> </xsl:stylesheet> |
Nota: El valor del atributo select es una expresión XPath. Una expresión XPath trabaja de igual manera que el sistema de navegación de archivos; donde para seleccionar subdirectorios se utiliza el slash (/). Dado el siguiente documento XML y la plantilla de transformación anterior: <?xml version="1.0" encoding="ISO-8859-1"?> <catalogo> <cd> <titulo>Empire Burlesque</titulo> <artista>Bob Dylan</artista> <pais>USA</pais> <discografica>Columbia</discografica> <precio>10.90</precio> <anio>1985</anio> </cd> <cd> <titulo>The dock of the bay</titulo> <artista>Otis Redding</artista> <pais>USA</pais> <discografica>Atlantic</discografica> <precio>7.90</precio> <anio>1987</anio> </cd> <cd> <titulo>Picture book</titulo> <artista>Simply Red</artista> <pais>EU</pais> <discografica>Elektra</discografica> <precio>7.20</precio> <anio>1985</anio> </cd> <cd> <titulo>Red</titulo> <artista>The Communards</artista> <pais>UK</pais> <discografica>London</discografica> <precio>7.80</precio> <anio>1987</anio> </cd> <cd> <titulo>Unchain my heart</titulo> <artista>Joe Cocker</artista> <pais>USA</pais> <discografica>EMI</discografica> <precio>8.20</precio> <anio>1987</anio> </cd> </catalogo> |
El resultado sería el siguiente documento HTML: <html> <body> <h2>Mi colecion de CDs</h2> <table border="1"> <tr bgcolor="#9acd32"><th>Titulo</th><th>Artista</th></tr> <tr><td>Empire Burlesque</td><td>Bob Dylan</td> </tr> </table> </body> </html> |
En el resultado anterior se puede ver que solo se ha copiado una línea de información del documento xml a la salida. En el siguiente capítulo veremos como usar la etiqueta <xsl:for-each> que nos permitirá realizar bucles a través del documento XML, y así poder recorrer todos los elementos para poder visualizarlos. |