XSL - variables entre templates ¿es posible?

 
Vista:

variables entre templates ¿es posible?

Publicado por ivan (1 intervención) el 24/08/2007 10:28:31
Hola,

no tengo muchos conocimientos de xsl y no sé si es posible crear una variable que me almacene un valor en un template y poder utilizar esa variable en otro template.

Y otra pregunta, pero creo q esto no va a ser posible, es si puedo crear como una especie de array de valores con xsl, pero por lo que he visto creo q no es posible. Porque como en el caso de arriba necesito almacenar en un template varios valores (no sé cuántos a priori) y leerlos en otro template.

Espero que alguien tenga alguna idea o que me diga si no es posible, gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:variables entre templates ¿es posible?

Publicado por barrejat (4 intervenciones) el 28/11/2007 13:10:00
Acabo de empezar con XML y XSL (de hecho he aparecido por el foro porque voy perdido con una cuestión..).

Creo que lo que necesitas es usar variables o parámetros (param) (ojo, tanto unos como otros son declarativas, no puedes modificar su valor mientras se ejecuta la página). Supongo que te refieres a pasar el valor de un template a otro dentro del mismo documento...

Esto es de unas pruebas que he estado haciendo, a ver si te sirve como orientación (he usado param, pero también se pueden declarar variables... no recuerdo ahora con qué palabra clave):

<?xml version="1.0" encoding="iso-8859-1"?><!-- DWXMLSource="plantes.xml" -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- Declaración y asignación del valor del parámetro -->
<xsl:param name="parametre">Clementina</xsl:param>

<xsl:template match="/">
<html>
<xsl:apply-templates/>
</html>
</xsl:template>

<xsl:template match="PLANTES">
<body>
<h1>Varietat: <xsl:value-of select="$parametre"/></h1>
</body>
</xsl:template>
</xsl:stylesheet>

En el ejemplo, el parámetro que pasas es "parametre", el cual se declara al principio con <xsl:param name=... y se le da el valor "Clementina" (valor que no podrá cambiar durante la ejecución). Después se usa con un símbolo de dólar delante: "$parametre" (le he llamado "parametre", pero podia haberse declarado con cualquier otro nombre).

También podrías usar para seleccionar registros coincidentes con el valor del parámetro:

<xsl:apply-templates select="VARIETAT[NOM=$parametre]"/>
o
<xsl:for-each select="NOM=$parametre"/>
etc.

donde "VARIETAT" es un nodo de mi XML i "NOM" un nodo "hijo" de "VARIETAT"... useasé, selecciones las variedades (de naranjas en el ejemplo...) cuyo nombre coincida con el del parámetro (en este caso Clementina).

No sé si esto te sirve... y no sé si estará muy bien, ya que he empezado esta semana con el XSL.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar