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

Generar html5 con xquery desde xml

Estas en el tema de Generar html5 con xquery desde xml en el foro de Programación General en Foros del Web. Buenos días a todos! Tengo 3 archivos xml, uno con CDs, otro con Artistas y otro con Canciones. Tengo que extraer todos los CDs que ...
  #1 (permalink)  
Antiguo 26/04/2014, 07:44
 
Fecha de Ingreso: agosto-2008
Ubicación: Canarias, España - París, Francia
Mensajes: 105
Antigüedad: 15 años, 8 meses
Puntos: 3
Generar html5 con xquery desde xml

Buenos días a todos!
Tengo 3 archivos xml, uno con CDs, otro con Artistas y otro con Canciones. Tengo que extraer todos los CDs que tengan canciones de un Artista.
Cuando hago la consulta XQuery, más o menos, funciona, pero cuando quiero generar una página html para mostrarlo, no me reconoce las variables.

Pongo el código de la consulta que tiene extensión .xqm
Código HTML:
Ver original
  1. module namespace page = 'http://basex.org/modules/web-page';
  2. (:Esta funcion genera la pagina:)
  3. declare
  4. %rest:path("/cds")
  5. %output:method("html")
  6. %output:doctype-system("about:legacy-compat")
  7. function page:cds()
  8. as element(html)
  9. {
  10.   <head>
  11.     <title>Xquery</title>
  12.   </head>
  13.   <body>
  14.  
  15. for $art in doc("artistas.xml")/artistas/artista,
  16. $can in doc("canciones.xml")/canciones/cancion,
  17. $cd in doc("cds.xml")/cds/cd,
  18.  
  19.  
  20. where
  21. $art/nombre="Rihanna"
  22. and
  23.  
  24. $art/idArtista = $can/idArtista
  25. and
  26. $can/idCancion = $cd//idCancion
  27.  
  28.  
  29. return <li>CD{data($cd/idCD)}, {data($cd/Titulo)} Artista: {data($art/nombre)}, {data($art/apellidos)} , idCancion: {data($can/idCancion)}, Canción: {data($can/nombreCancion)}.</li>
  30.  
  31. </body>
  32. </html>
  33. };
En principio quiero hacerlo fácil para aprender.

El mensaje de error es: "Undefined variable $cd"

Muchas gracias a todos!

Última edición por rutame; 26/04/2014 a las 07:46 Razón: Mensaje de error

Etiquetas: xml
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 20:21.