XML - XQuery, preguntas básicas

 
Vista:

XQuery, preguntas básicas

Publicado por Rush (1 intervención) el 18/10/2006 09:46:53
Hola, he hecho una web que carga contenidos de XML a través de Javascript. También sé que se pueden cargar datos XML en un HTML a través de XSLT's. Pero desconozco qué papel juega XQuery en todo esto... Se ve que es cómo un SQL para XML pero no sé cómo mostrar esta salida por un HTML.

Por C# no tengo problrma en hacerlo; le pasas un XML y te escribe otro XML de salida según la XQuery que pones. ¿Pero en HTML? ¿Que archivos se necesitan?

Toda la documentación que encuentro está un poco por encima de mi nivel actual, no muy por encima, pero lo suficiente para que no lo entienda.

GRACIAS
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
Imágen de perfil de Alejandro

Mostrar resultados de XQuery en HTML con Transformación XML

Publicado por Alejandro (258 intervenciones) el 13/07/2023 22:18:52
XQuery es un lenguaje de consulta para XML que te permite extraer y manipular datos almacenados en documentos XML. Es similar a SQL en el sentido de que puedes realizar consultas y filtrar datos, pero está específicamente diseñado para trabajar con estructuras XML.

En el contexto de HTML, puedes utilizar XQuery para realizar consultas sobre documentos XML y luego mostrar los resultados en tu página HTML. Para lograr esto, necesitarás utilizar un enfoque conocido como "Transformación XML" (XML Transformation).

La transformación XML implica utilizar una hoja de estilo XSLT (Extensible Stylesheet Language Transformations) para definir cómo se debe transformar un documento XML en otro formato, como HTML. Esta hoja de estilo XSLT puede contener lógica XQuery para realizar consultas y manipulaciones en el XML de origen.

Aquí hay una descripción básica de los archivos que necesitarías para mostrar la salida de una consulta XQuery en HTML utilizando una transformación XML:

1. Archivo XML de origen: Contiene los datos en formato XML que deseas consultar y mostrar en HTML.

2. Archivo XSLT: Define la transformación de tu archivo XML de origen a HTML. Puedes incluir lógica XQuery dentro del archivo XSLT para realizar consultas y filtrar los datos. La salida de esta transformación será un archivo HTML que se generará dinámicamente.

3. Archivo HTML: Este es el archivo que se cargará en el navegador y que mostrará los resultados de la transformación XSLT. Deberás incluir una referencia al archivo XSLT en el archivo HTML para que la transformación se realice cuando se cargue la página.

Aquí hay un ejemplo básico de cómo podría verse el contenido de cada archivo:

Archivo XML de origen (datos.xml):

1
2
3
4
5
6
7
8
9
10
<productos>
  <producto>
    <nombre>Producto 1</nombre>
    <precio>10.99</precio>
  </producto>
  <producto>
    <nombre>Producto 2</nombre>
    <precio>15.99</precio>
  </producto>
</productos>

Archivo XSLT (transformacion.xslt):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
      <head>
        <title>Resultado XQuery en HTML</title>
      </head>
      <body>
        <h1>Productos</h1>
        <xsl:for-each select="productos/producto">
          <p>
            <strong><xsl:value-of select="nombre"/></strong>: <xsl:value-of select="precio"/> EUR
          </p>
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Archivo HTML (index.html):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE html>
<html>
<head>
  <title>Resultado XQuery en HTML</title>
  <script>
    function cargarDatos() {
      var xhr = new XMLHttpRequest();
      xhr.onreadystatechange = function() {
        if (xhr.readyState === XMLHttpRequest.DONE) {
          if (xhr.status === 200) {
            var resultado = xhr.responseXML;
 
            var xsltProcessor = new XSLTProcessor();
            xsltProcessor.importStylesheet(resultado);
 
            var resultadoTransformacion = xsltProcessor.transformToDocument(resultado);
            document.getElementById('contenido').innerHTML = new XMLSerializer().serializeToString(resultadoTransformacion);
          } else {
            console.error('Error al cargar el archivo XSLT');
          }
        }
      };
 
      xhr.open('GET', 'transformacion.xslt');
      xhr.send();
    }
  </script>
</head>
<body onload="cargarDatos()">
  <div id="contenido"></div>
</body>
</html>

En este ejemplo, el archivo HTML utiliza JavaScript para cargar el archivo XSLT y realizar la transformación del archivo XML de origen. El resultado de la transformación se inserta en un elemento `<div>` con el id "contenido".

Es importante destacar que el soporte de XQuery y XSLT en los navegadores web puede variar. Algunos navegadores pueden no ser compatibles o pueden tener ciertas limitaciones. Por lo tanto, es recomendable realizar pruebas en diferentes navegadores para asegurarte de que la transformación XML funcione correctamente.

Espero que esta información te sea útil para entender cómo mostrar la salida de XQuery en HTML utilizando una transformación XML.
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