12 de Febrero de 2006 (Daniel P.)Elemento <xsl:if>
Para introducir una orden condicional en el tratamiento del documento XML se
debe de introducir en el documento XSL la etiqueta <xsl:if>:
Veamos su sintaxis:
<xsl:if
test="expresión">
...
... Se pone la salida que se quiere ver si la expresión es verdadera
...
</xsl:if>
|
Donde poner la etiqueta <xsl:if>
Para añadir una condición, se debe de añadir dentro de
la etiqueta <xsl:for-each> dentro del archivo XSL.
Veamos un ejemplo simple de un archivo xsl que usa esta etiqueta:
<?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 coleccion de CDs</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Titulo</th>
<th>Artista</th>
</tr>
<xsl:for-each select="catalogo/cd">
<xsl:if test="precio > 8">
<tr>
<td><xsl:value-of select="titulo"/></td>
<td><xsl:value-of select="artista"/></td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
|
Nota: El valor contenido en el atributo test
contiene la expresión que será evaluada.
Dado el siguiente documento XML y la plantilla anterior de transformación:
<?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 coleccion 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> <tr><td>Unchain my heart</td><td>Joe
Cocker</td> </tr> </table>
</body></html>
|
Como se puede observar sólo serán mostrados aquellos artistas cuyo
precio de CD sea superior a 8.
|