Foros del Web » Programación para mayores de 30 ;) » Programación General »

Paso de parametros a XML

Estas en el tema de Paso de parametros a XML en el foro de Programación General en Foros del Web. Hola, estoy intentando hacer lo siguiente y, como no encuentro nada similar, estoy empezando a pensar que no se puede: Tengo un archivo xml en ...
  #1 (permalink)  
Antiguo 01/09/2008, 10:41
 
Fecha de Ingreso: septiembre-2008
Mensajes: 4
Antigüedad: 16 años, 5 meses
Puntos: 0
Paso de parametros a XML

Hola, estoy intentando hacer lo siguiente y, como no encuentro nada similar, estoy empezando a pensar que no se puede:

Tengo un archivo xml en un servidor y lo muestro con xsl.
El xml es tal que así:
Código:
<TAGS>
     <TAG name="hola">valor1</TAG>
     <TAG name="adios">valor2</TAG>
</TAGS>
Lo que yo quiero es que el XSL solo muestre el valor de una ellas, cuyo name se lo pase como parametro en la barra de direcciones, es decir:

Código:
http://direccion.com?var=hola
En el xsl he probado con algo así:

Código:
<xsl:for-each select="/TAGS/TAG[@name=$var]">
pero no funciona.

¿Sabéis si se puede hacer esto? y en caso de que sí, ¿cómo?
  #2 (permalink)  
Antiguo 01/09/2008, 12:18
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
Respuesta: Paso de parametros a XML

Primero hiciste un mach / ?

Al principio del template como lo tienes ?

Lo que quieres se puede hacer y es bien fácil...te recomiendo el manual que aparece en las referencias de XSLT

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 02/09/2008, 01:36
 
Fecha de Ingreso: septiembre-2008
Mensajes: 4
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Paso de parametros a XML

Sí, lo tengo tal que así:
Código:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
      <title>...</title>
      <LINK REL="stylesheet" TYPE="text/css" HREF="estilo.css" /> 
      <body>
        <xsl:for-each select="/TAGS/TAG[@name=$var]"> 
		...
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>
Para probar, le he puesto lo siguiente al principio del xsl:
Código:
<xsl:param name="var">hola</xsl:param>
y funciona, hace lo que quiero que haga excepto por el hecho de que yo no quiero indicarle el parametro dentro del xsl sino enviárselo desde fuera con algo tipo:
Código:
http://direccion.com?var=hola
que en otras ocasiones será:
Código:
http://direccion.com?var=adios
El problema es que no sé cómo pasarle parametros desde fuera ni encuentro cómo se hace en ninguna parte.

Estoy usando directamente el parser que traen incorporado los navegadores modernos, no uso nada tipo cocoon o similar, ¿creéis que podría tener algo que ver?
  #4 (permalink)  
Antiguo 02/09/2008, 06:23
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
Respuesta: Paso de parametros a XML

si en vez de hacer

<xsl:param name="var">hola</xsl:param>

haces

<xsl:param name="var"><xsl:value-of select="/TAGS/TAG[@name=$var]"></xsl:param>

podrás pasarle el parámetro que quieras...

Espero que sea eso lo que necesitabas...

Saludos
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 02/09/2008, 07:59
 
Fecha de Ingreso: septiembre-2008
Mensajes: 4
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Paso de parametros a XML

Cita:
si en vez de hacer

<xsl:param name="var">hola</xsl:param>

haces

<xsl:param name="var"><xsl:value-of select="/TAGS/TAG[@name=$var]"></xsl:param>

podrás pasarle el parámetro que quieras...

Pero, ¿cómo le paso, desde fuera, el valor del parámetro? He probado con lo de:
Código:
http://direccion.com?var=hola
y sigue sin funcionar.
  #6 (permalink)  
Antiguo 02/09/2008, 12:45
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
Respuesta: Paso de parametros a XML

...mmm...probaste con

http://direccion.com?var=<xsl:value-of select="/TAGS/TAG[@name=$var]">

directo en el XSLT ?

Saludos
__________________
Esteban Quintana
  #7 (permalink)  
Antiguo 03/09/2008, 01:06
 
Fecha de Ingreso: septiembre-2008
Mensajes: 4
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Paso de parametros a XML

Acabo de probar:

Código:
http://direccion.com?var=<xsl:value-of select="/TAGS/TAG[@name=hola]">
Y también:

Cita:
http://direccion.com?var=<xsl:param name="var">hola</xsl:param>

Y nada, no las pilla.
Gracias de todos modos.
  #8 (permalink)  
Antiguo 03/09/2008, 08:26
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
Respuesta: Paso de parametros a XML

Cita:
[@name=hola]
Eso debe estar fallando...de donde sacaste que se hace así ? creo que debes usar una función especial para evaluar igualdades...

Dejame investigarlo y te coloco el código ya probado...

Saludos
__________________
Esteban Quintana
  #9 (permalink)  
Antiguo 03/09/2008, 12:31
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
Respuesta: Paso de parametros a XML

Lo que quieres hacer es más complicadito, debes de hacer un bucle y dentro de el un conicional que verifique si es el que necesitas...

http://edusanver.wordpress.com/2008/...nodo-anterior/

Ahí tienes un ejemplo que lo compara con el valor anterior, solo deberías de modificar esa parte...

Espero que te sirva

Saludos
__________________
Esteban Quintana
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:01.