Saltar al contenido principal

if

El elemento if es un elemento condicional que permite modificar el XML de salida en función de si los datos de entrada cumplen una cierta condición.

La estructura de este elemento es la siguiente:

<xsl:if test="expresion">
<!-- Salida si la expresión es verdadera -->
</xsl:if>

Donde:

  • test es un atributo que permite especificar la condición que se debe cumplir.

Un ejemplo de su uso sería el siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h1>Colección de música</h1>
<table border="1">
<tr bgcolor="#9acd32">
<th>Título</th>
<th>Artista</th>
<th>Precio</th>
</tr>
<xsl:for-each select="catalogo/cd">
<xsl:if test="precio>10">
<tr>
<td>
<xsl:value-of select="titulo" />
</td>
<td>
<xsl:value-of select="artista" />
</td>
<td>
<xsl:value-of select="precio" />
</td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

En el ejemplo anterior, se mostrará el título, el nombre del artista y el precio de aquellos elementos cuyo valor del elemento precio sea mayor que 10.

También es posible utilizar la entidad &gt; en lugar de >:

<xsl:if test="precio&gt;10">

Consideremos que tenemos el siguiente documento XML:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="hoja.xsl"?>
<catalogo>
<cd>
<titulo>Thriller</titulo>
<artista>Michael Jackson</artista>
<precio>12.99</precio>
</cd>
<cd>
<titulo>The Wall</titulo>
<artista>Pink Floyd</artista>
<precio>9.99</precio>
</cd>
<cd>
<titulo>Abbey Road</titulo>
<artista>The Beatles</artista>
<precio>14.99</precio>
</cd>
</catalogo>

En ese caso, la transformación XSLT daría como resultado un documento HTML:

<!DOCTYPE html>
<html>
<body>
<h1>Mi Colección de música</h1>
<table border="1">
<tr bgcolor="#9acd32">
<th>Título</th>
<th>Artista</th>
<th>Precio</th>
</tr>
<tr>
<td>Thriller</td>
<td>Michael Jackson</td>
<td>12.99</td>
</tr>
<tr>
<td>Abbey Road</td>
<td>The Beatles</td>
<td>14.99</td>
</tr>
</table>
</body>
</html>

El documento HTML se visualizaría de la siguiente manera:

Probar en el navegador