Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Pasa un parámetro a una plantilla.
<xsl:with-param
name = QName
select = Expression
</xsl:with-param>
Atributos
- name
Necesario. Nombres completos del parámetro.
- select
Una Expresiones para comparar con el contexto actual. No existe ningún valor predeterminado. Se genera una cadena vacía si no hay contenido.
Información del elemento
Número de apariciones |
Ilimitado |
Elementos primarios |
|
Elementos secundarios |
xsl:apply-templates, xsl:attribute, xsl:call-template, xsl:choose, xsl:comment, xsl:copy, xsl:copy-of, xsl:element, xsl:for-each, xsl:if, xsl:processing-instruction, xsl:text, xsl:value-of, xsl:variable |
Comentarios
El atributo name es necesario. Especifica el nombre del parámetro. El parámetro es la variable cuyo valor de enlace va a sustituirse.
El elemento <xsl:with-param> está permitido dentro de <xsl:call-template> y <xsl:apply-templates>.
El valor del parámetro se especifica de la misma forma que para <xsl:variable> y <xsl:param>.
El nodo actual y la lista de nodos actual utilizados para calcular el valor especificado por el elemento <xsl:with-param> son iguales a los utilizados para el elemento <xsl:apply-templates> o <xsl:call-template> dentro del que ocurre.
Si pasa un parámetro x a una plantilla que no tiene un elemento <xsl:param> para x, no es un error; el parámetro simplemente se omite.
Ejemplo
Una hoja de estilos puede utilizar el siguiente método para llamar a cadenas de mensaje localizadas.
Los mensajes para un idioma somelanguage se almacenan en un archivo XML, resources/languageabbreviation.xml, en el formato que se muestra en el siguiente archivo XML de ejemplo.
Archivo XML (app.xml)
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="showlocmsg.xsl" ?>
<showmsg>
<msg23/>
</showmsg>
Archivo de recursos XML (resources/en.xml)
<?xml version='1.0'?>
<messages>
<message name="msg23">Error 23: The drive is full.</message>
<message name="msg42">Error 42: The file is not found.</message>
</messages>
Archivo XSLT (showlocmsg.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- These 2 elements effectively assign
$messages = resources/en.xml/<messages>,
then $messages is used in the "localized-message" template. -->
<xsl:param name="lang">en</xsl:param>
<xsl:variable name="messages"
select="document(concat('resources/', $lang, '.xml'))/messages"/>
<xsl:template name="msg23" match="msg23">
<xsl:call-template name="localized-message">
<xsl:with-param name="msgcode">msg23</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="localized-message">
<xsl:param name="msgcode"/>
<!-- Show message string. -->
<xsl:message terminate="yes">
<xsl:value-of select="$messages/message[@name=$msgcode]"/>
</xsl:message>
</xsl:template>
</xsl:stylesheet>
Resultados
Este es el resultado con formato:
.gif)
Este es el resultado del procesador:
<?xml version="1.0" encoding="UTF-16"?>
Vea también
Referencia
Elemento <xsl:call-template>
Elemento <xsl:variable>
Elemento <xsl:param>
Elemento <xsl:template>