Selección de valores individuales.

Ejemplo18:
Para la selección de valores individuales, extraidos de los nodos del árbol XML, debemos utilizar la instrucción "xsl:value-of", con ella podemos hacer referencia tanto a nodos, como variables, cálculos matemáticos, etc. Para el acceso a los nodos, debemos utlizar las expresiones Xpath previamente descritas:
<xsl:value-of select="matricula/personal/dni"/>
<xsl:value-of select="$valor"/>
<xsl:value-of select="3+2"/>
Templates y el modificador " mode ".
Templates con nombre: este tipo de templates no se corresponden con ningún nodo del documento XML y sólo podemos invocarlos haciendo referencia a ellos directamente. Su sentencia de definición ya no incluye el atributo "match", sino que este se sustituye por "name". Podemos aumentar las funcionalidades de este tipo de templates pasandole parámetros. El siguiente ejemplo hace uso de la definición de templates por nombre y paso de parámetros:
Ejemplo 19:
Documento XML que usaremos como base:
<?xml version="1.0" encoding="ISO-8859-1"?>
<test2>
<titulo>Prueba de patrones XSL</titulo>
<descripcion>Cuerpo del documento</descripcion>
</test2>
Documento XSL que aplica los templates por nombre:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="test2">
<html>
<head>
<title><xsl:apply-templates select="titulo" mode="head"/></title>
</head>
<body>
<xsl:apply-templates/>
<xsl:call-template name="print">
<xsl:with-param name="in"><xsl:value-of select="/test2/titulo"/></xsl:with-param>
</xsl:call-template>
</body>
</html>
</xsl:template>
<xsl:template match="titulo" mode="head">
<xsl:value-of select="text()"/>
</xsl:template>
<xsl:template match="titulo">
<h1><xsl:value-of select="text()"/></h1>
</xsl:template>
<xsl:template match="descripcion">
<h3><xsl:value-of select="text()"/></h3>
</xsl:template>
<xsl:template name="print">
<xsl:param name="in">Nothing</xsl:param>
<i><xsl:value-of select="$in"/></i>
</xsl:template>
</xsl:stylesheet>
Resultado de la transformación:
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<title>Prueba de patrones XSL</title>
</head>
<body>
<h1>Prueba de patrones XSL</h1>
<h3>Cuerpo del documento</h3>
<i>Prueba de patrones XSL</i>
</body>
</html>
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.