Saltar al contenido principal

with-param

El elemento with-param permite definir el valor de un parámetro que será pasado a una plantilla.

La estructura de este elemento es la siguiente:

<xsl:with-param name="nombre" select="expresion-xpath"/>

Donde:

  • name es un atributo obligatorio que especifica el nombre del parámetro.
  • select es un atributo opcional que define el valor del parámetro mediante una expresión XPath.
Valores de atributos name

El valor del atributo name tiene que coincidir con el atributo name de un elemento param. En el caso de que no exista esa asociación, el elemento with-param será ignorado.

Un ejemplo completo 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>
<ul>
<xsl:for-each select="catalogo/cd">
<xsl:call-template name="mostrar-titulo">
<xsl:with-param name="titulo" select="titulo" />
</xsl:call-template>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
<xsl:template name="mostrar-titulo">
<xsl:param name="titulo" />
<li>Título: <xsl:value-of select="$titulo"/></li>
</xsl:template>
</xsl:stylesheet>

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>
</cd>
<cd>
<titulo>The Wall</titulo>
<artista>Pink Floyd</artista>
</cd>
<cd>
<titulo>Abbey Road</titulo>
<artista>The Beatles</artista>
</cd>
</catalogo>

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

<!DOCTYPE html>
<html>
<body>
<ul>
<li>Título: Thriller</li>
<li>Título: The Wall</li>
<li>Título: Abbey Road</li>
</ul>
</body>
</html>

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

Probar en el navegador