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

paso de parametros XML->PHP->XSL

Estas en el tema de paso de parametros XML->PHP->XSL en el foro de Programación General en Foros del Web. Muy buenas, soy nuevo en esto y no se muy bien como hacer lo siguiente: Tengo un XML en el que tengo el elemento COMPONENTES, ...
  #1 (permalink)  
Antiguo 28/01/2009, 02:58
 
Fecha de Ingreso: enero-2009
Mensajes: 3
Antigüedad: 15 años, 3 meses
Puntos: 0
paso de parametros XML->PHP->XSL

Muy buenas, soy nuevo en esto y no se muy bien como hacer lo siguiente:

Tengo un XML en el que tengo el elemento COMPONENTES, y este tiene de hijos a los elementos : procesadores, alimentación, T.Gráfica, etc...

Lo que quiero hacer es que al hacer clic encima de procesadores en el menu, en el XSL que muestra la lista de los producrtos, aparezcan todos los procesadores.

Lo estoi intentado con el metodo GET pero no encuentro manera de hacerlo.

Gracias y un saludo,
  #2 (permalink)  
Antiguo 28/01/2009, 05:27
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Respuesta: Ayuda con paso de parametros XML->PHP->XSL

con XSLT tranformas tu XML a HTML, con los mismos métodos que hay en HTML...

Así que para hacer lo que quieres debes simplemente generar un hipervínculo

<a href="miscript.php?show=procesadores">Procesadores </a>

Y que tu script al ser ejecutado muestre la info que corresponda...

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 28/01/2009, 05:55
 
Fecha de Ingreso: enero-2009
Mensajes: 3
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda con paso de parametros XML->PHP->XSL

mi php es el siguiente:
<?

$xsl_filename = "lista.xsl"; /* nom arxiu xsl */
$xml_filename = "data_base.xml"; /* nom arxiu xml */

$doc = new DOMDocument();
$xsl = new XSLTProcessor();

$doc->load($xsl_filename);
$xsl->importStyleSheet($doc);

$doc->load($xml_filename);

echo $xsl->transformToXML($doc);
?>

y en el XSL, lo que hacemos es generar una tabla que muestra la imagen, precio, detalles de la clase de componente elegido. El problema es que el archivo XSL nos muestra todos los componentes. y nosotros solo queremos mostrar una clase de componente, por ejemplo procesadores, y tendrian que salir solo las tablas de procesadores pero nos salen todos los componentes.

<xsl:apply-templates select=" ( y aqui que tendriamos que poner?,ya que es lo que varia)" />
  #4 (permalink)  
Antiguo 28/01/2009, 06:16
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Respuesta: Ayuda con paso de parametros XML->PHP->XSL

El problema es que una vez ejecutado el XSLT no vuelve a ejecutarse...o sea, que una vez cargado no puedes hacer que ante un evento como el onClick se vuelva a ejecutar un template...

Eso talvés lo puedas hacer con javascript o algo así...Igual no entiendo bien la funcionalidad, para que cargar tooooooda la lista de productos entera, talvés sea muy pesado...

Saludos
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 28/01/2009, 06:27
 
Fecha de Ingreso: enero-2009
Mensajes: 3
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda con paso de parametros XML->PHP->XSL

vuelve a cargarse, por que el menú, esta en una pagina distinta, que mostramos por frames. lo que no sabemos hacer es lo que te he comentado.
<xsl:apply-templates select=" ( y aqui que tno sabemos que poner)" />

No queremos cargar la lista entera, en el menu pone, procesadores, pues queremos que solo muestre los procesadores (cargar la lista entera es lo que nos hace ahora, y es lo que no queremos)

Última edición por Blainn; 28/01/2009 a las 06:46
  #6 (permalink)  
Antiguo 28/01/2009, 13:26
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Respuesta: paso de parametros XML->PHP->XSL

pero el XML tiene la lista entera ?

en <xsl:apply-templates select=" ( y aqui que tno sabemos que poner)" /> debes colocar la ruta del tag que será ejecutado...

si colocas /lista/procesadores debes usar un

<xsl:template match="/lista/procesadores">

A mi no me gusta mucho usar eso de match...no me parece adecuado, prefiero llamarlos por el nombre...

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 21:48.