Foros del Web » Programando para Internet » ASP Clásico »

Como pasar parámetros de ASP a plantilla .xsl

Estas en el tema de Como pasar parámetros de ASP a plantilla .xsl en el foro de ASP Clásico en Foros del Web. Hola, sucede lo siguiente: no logro que la plantilla xsl reciba el valor que le trato de pasar para filtrar el archivo xml El archivo ...
  #1 (permalink)  
Antiguo 01/12/2011, 11:15
Avatar de Rappa  
Fecha de Ingreso: noviembre-2011
Ubicación: Montevideo, Uruguay
Mensajes: 80
Antigüedad: 12 años, 5 meses
Puntos: 13
Pregunta Como pasar parámetros de ASP a plantilla .xsl

Hola, sucede lo siguiente: no logro que la plantilla xsl reciba el valor que le trato de pasar para filtrar el archivo xml

El archivo xml es como esto:
Código XML:
Ver original
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <?xml-stylesheet href="comercios.xsl" type="text/xsl"?>
  3. <comercios>
  4. <comercio>
  5. <id>1</id>
  6. <nom>ABARNIL S.A.</nom>
  7. <cat>1</cat>
  8. ...
  9. </comercio>
  10. <comercio>
  11. <id>2</id>
  12. <nom>AMORE WINE BAR-RESTO</nom>
  13. <cat>1</cat>
  14. ...
  15. </comercio>
  16. ...
  17. </comercios>

Mi xsl es este:
Código XML:
Ver original
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>
  4. <xsl:param name="cat"/>
  5.  
  6. <xsl:template match="/">
  7.     <xsl:apply-templates select="comercios"/>
  8. </xsl:template>
  9.  
  10. <xsl:template match="comercios">
  11.     <xsl:copy>
  12.         <xsl:apply-templates select="comercio[cat=$cat]">
  13.             <xsl:sort select="nom" data-type="text"/>
  14.         </xsl:apply-templates>
  15.     </xsl:copy>
  16. </xsl:template>
  17.  
  18. <xsl:template match="comercio">
  19.     <xsl:copy-of select="."/>
  20. </xsl:template>
  21. </xsl:stylesheet>

Y la llamada es esta:
Código ASP:
Ver original
  1. set xmlComs = Server.CreateObject("Microsoft.XMLDOM")
  2. xmlComs.async = false
  3. xmlComs.Load "miarchivo.xml"
  4.  
  5. set xslOrd = Server.CreateObject("Microsoft.XMLDOM")
  6. xslOrd.async = false
  7. xslOrd.Load "miarchivo.xsl?cat=5"
  8.  
  9. xmlComs.transformNodeToObject xslOrd,xmlComs

Pero nada, la plantilla ni se entera que le estoy mandando un dato y me devuelve el archivo vacio. En cambio si le pongo el valor de filtrado manualmente en el xsl, funciona bien.

Alguna idea?
__________________
Drugs and alcohol are not the answer
Unless you are asking what i'm doing this weekend
  #2 (permalink)  
Antiguo 06/12/2011, 08:10
Avatar de Rappa  
Fecha de Ingreso: noviembre-2011
Ubicación: Montevideo, Uruguay
Mensajes: 80
Antigüedad: 12 años, 5 meses
Puntos: 13
Respuesta: Como pasar parámetros de ASP a plantilla .xsl

Encontré la solución, lo pongo por si a alguien más le sirve:

Código ASP:
Ver original
  1. ...
  2. set miParametro = miObjetoXsl.selectSingleNode("/xsl:stylesheet/xsl:param[@name='nombreDelParametro']")
  3. miParametro.setAttribute "select", valorQueQuieroPasar
  4. ...

Explico: en lugar de pasarlo como parámetro de la url del archivo .xsl, se crea un objeto y se le asigna el nombre y el valor del parámetro que queremos pasar.

Tiene que ser hecho antes de llamar al .transformNodeToObject
__________________
Drugs and alcohol are not the answer
Unless you are asking what i'm doing this weekend

Etiquetas: asp, plantilla, select, server, xsl
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 15:38.