Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Consultas XQuery - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 25 de marzo de 2026 por Alberto S.

4 visualizaciones

Descargar la transcripción

Bueno, pues estamos aquí en la unidad 6 en la que vamos a tratar xQuery. 00:00:00
Ya os hice un vídeo de Basics, que es la herramienta que vamos a utilizar para las xQuery. 00:00:06
Es una herramienta que está especializada en xQuery y además es gratuita y ya veréis que es muy intuitiva y es fácil de usar. 00:00:13
Es la herramienta que vamos a utilizar también para la tarea, así que sería conveniente que os vierais este vídeo 00:00:23
y instalará es basics y bueno os dejo también claro el código de x query que es como en todas 00:00:28
las unidades que es el que vamos a tomar de referencia para para explicar un poco cómo 00:00:39
funciona todo esto entonces si abrís el archivo comprimido que os he subido veréis que tiene 00:00:44
dos archivos. Uno es el XML del cual vamos a hacer las consultas y luego las consultas 00:00:53
propiamente dichas. Vamos a echarle un ojo en el Visual Studio Code al XML que os he 00:01:00
subido. Entonces, tenemos una etiqueta raíz que es biblioteca. En la biblioteca lo que 00:01:07
vamos a tener son libros y cada libro pues tenemos dos atributos edición y publicación y luego una 00:01:15
serie de elementos propios de cada libro entonces con x query lo que vamos a poder hacer es 00:01:25
posicionarnos en el nodo que nos interese y para posicionarnos nos vamos a valer de xpath no que 00:01:31
que es la tecnología que utilizábamos ya en la unidad anterior. 00:01:39
Entonces haremos lo mismo, biblioteca barra libros barra libro, y nos posicionaremos en libro. 00:01:45
Y una vez posicionados en libro, por ejemplo, podremos sacar los valores de los que se compone el libro. 00:01:51
Podemos hacer consultas 00:02:03
De que por ejemplo las páginas 00:02:06
Tengan un determinado valor 00:02:07
O sea mayor o menor 00:02:11
Podemos utilizar estos datos 00:02:12
Para funciones 00:02:14
Y podemos ver si hay campo vacío 00:02:15
Si no, etc 00:02:18
¿Vale? 00:02:20
Pues como consultas básicas de SQL 00:02:21
Básicamente 00:02:24
Entonces, venga, vamos con ello 00:02:25
Ejecutamos BaseX 00:02:29
y lo primero que vamos a hacer va a ser cargar nuestra base de datos que en este caso es el xml de libros 00:02:32
yo aquí ya tengo la ruta puesta, vosotros tendréis que descargar el archivo comprimido, descomprimirlo 00:02:43
y luego aquí buscar el xml de libros 00:02:51
si lo cargamos pues ya lo carga la herramienta y está bastante bien porque aquí tenéis un visor 00:02:55
que os podéis situar en cada 00:03:06
nodo y ver lo que tiene 00:03:08
los elementos 00:03:10
de cada nodo y 00:03:13
está guay, vale 00:03:14
luego tenéis esta 00:03:17
pequeña editor de texto 00:03:19
que es donde vamos a 00:03:21
ir construyendo nuestras consultas 00:03:23
entonces 00:03:25
las consultas ya las tengo yo aquí 00:03:28
vale, que es del otro fichero 00:03:31
de este de consultas 00:03:33
vale, os, me voy a valer 00:03:35
de un notepad y vamos a ir viendo las consultas una a una. Vale. Como veis aquí los comentarios 00:03:38
se hacen con estas caritas sonrientes, entonces se abre paréntesis, dos puntos, comentario, 00:03:48
dos puntos, se cierra paréntesis. Así es como se hacen los comentarios. Entonces, ¿cómo 00:03:57
¿Cómo manejamos las consultas de XQuery? Vamos a estar recorriendo nodos. Para recorrer nodos nos tenemos que hablar de un bucle for y de una variable. Las variables en XQuery se crean con el dólar. Primero se pone el dólar y luego el nombre de la variable. Esto indica que es una variable. 00:04:02
Aquí lo que vamos a hacer es repetir este broker for de 1 a 5, que son los valores que va a coger nuestra variable x. 00:04:25
Y lo que vamos a devolver va a ser una etiqueta text con el valor de la variable. 00:04:33
Y para que salga el valor de la variable lo que lo vamos a poner es entre llaves. 00:04:40
Entonces, para ejecutar esta consulta le damos aquí al play y como vemos nos da el resultado esperado. 00:04:46
Que es 5 veces el test con los valores que va cogiendo de 1 a 5. ¿De acuerdo? Vale, vamos a seguir con la... Ya con consultas directamente al XML. Vale, a ver... Perfecto. 00:04:53
Aquí lo que hacemos es que la variable x nos valemos de un xpath para situarnos en el nodo que nos interesa, que en este caso es libro, ¿vale? Va de biblioteca, libros, libro. 00:05:17
Entonces, el valor que está cogiendo X es hasta libro 00:05:31
¿Vale? 00:05:37
Entonces, si queremos sacar el título y la editorial 00:05:39
Ponemos X porque está cogiendo el valor hasta libro 00:05:41
Y luego sacamos el título, ya que está dentro del libro 00:05:45
Y sacamos la editorial, ya que está dentro de la editorial 00:05:48
Y como estamos recorriendo un bucle for 00:05:51
Mientras existan libros, va a seguir recorriéndolo 00:05:54
¿De acuerdo? 00:05:57
También tenemos la función test y la función data. Esto lo utilizamos para que saque solo el valor. En este caso, el título sería LearningXML y la editorial O'Reilly. 00:05:58
¿Qué es lo que pasa si, por ejemplo, le quito aquí el test? 00:06:13
Que en vez de sacar solo el valor, lo que nos va a sacar son las etiquetas también 00:06:20
O sea, va a sacar todo esto 00:06:23
Las etiquetas, el valor, en vez de solo el valor 00:06:25
Muchas veces, pues igual querremos que aparezcan las etiquetas 00:06:28
Entonces lo pondremos así 00:06:32
Otras veces solo queremos que aparezca el valor 00:06:34
Y para que aparezca el valor, pues es con barra test o utilizando la función data 00:06:36
entonces vamos a ver lo que aparece 00:06:42
como veis aquí 00:06:44
como hemos sacado el título 00:06:47
sin el barra test ni en el data 00:06:49
tenemos 00:06:50
esto con el título 00:06:53
con las etiquetas 00:06:55
sin embargo para la editorial solo saca el valor 00:06:57
¿de acuerdo? 00:06:59
vale, vamos con otra 00:07:01
función 00:07:03
con otra consulta 00:07:05
a ver, de acuerdo 00:07:09
Vale, aparte de consultar datos directamente 00:07:18
Lo que podemos utilizar son condiciones 00:07:23
Entonces, aquí lo que estamos haciendo también es posicionándonos 00:07:25
En libro, en el nodo libro 00:07:29
Y lo que vamos a hacer es que vamos a sacar 00:07:32
Solo los libros que tengan menos de 100 páginas 00:07:36
Vale, entonces, dentro del libro 00:07:41
Hay un elemento que es páginas 00:07:43
que es el que estamos consultando con la función number. 00:07:46
La función number la ponemos para cerciorarnos de que está entendiendo que el valor que hay aquí dentro es un número. 00:07:51
¿De acuerdo? 00:07:59
Entonces le ponemos de libro las páginas, le indicamos que es un número 00:08:00
y vamos a sacar solo las que tengan menos de 100 páginas. 00:08:06
Y vamos a sacar el valor. 00:08:10
Por eso utilizamos la función data. 00:08:13
Entonces aquí solo nos saca una, porque si vamos aquí al XML vemos que solo LearningXML tiene menos de 100 páginas, que tiene 16. 00:08:15
Si, por ejemplo, le ponemos menos de 500, ya nos saca 3, porque menos de 500 tenemos el XQuery, que es este de aquí, tenemos menos de 500 el XMLSem y el LearningXML. 00:08:28
¿De acuerdo? Entonces, con esto veis que podemos también hacer consultas con condiciones muy sencillitas, pero que es muy fácil de hacer. Simplemente es posicionarse en el nodo y poner la condición con el web. 00:08:51
¿De acuerdo? Vamos con la siguiente 00:09:08
Aquí nos hemos posicionado en libros 00:09:13
Entonces, como nos hemos posicionado en libros y no en libro 00:09:29
Lo que tenemos que hacer para consultar elementos de dentro del libro es ir al libro 00:09:34
¿Vale? Esto podríamos poner aquí libro y entonces le quitaríamos aquí el libro como hemos hecho en la anterior 00:09:40
Entonces, a ver, esta consulta es parecida a la anterior, lo único que veis es que utilizamos let 00:09:50
Let se utiliza para inicializar variables 00:10:00
Con el let estamos declarando la variable y y estamos diciendo que le asignamos este valor 00:10:04
¿Vale? Esta lista de valores, porque puede haber más de uno, como hemos visto antes 00:10:10
Entonces, luego simplemente con el count contamos los valores que hay dentro de esta lista 00:10:15
Aquí estamos buscando los libros que tengan menos de 100 páginas, los almacenamos con el let en la variable y y aquí contamos el número de libros. 00:10:22
Que va a salir 1, claro. Si ponemos como antes 500 salen 3. 00:10:33
¿De acuerdo? Entonces con el let inicializamos también variables y luego podemos hacer operaciones sobre ellas. 00:10:41
Seguimos. A ver... Entonces, esta consulta es muy parecida. Lo único que en vez de hacerla sobre el número de páginas, lo hacemos sobre la editorial. 00:10:51
Y como veis, aquí estamos buscando libros cuya editorial sea O'Reilly. También lo que hacemos es ordenarla por título, de manera alfabética. 00:11:09
Y lo ponemos en una lista 00:11:22
¿De acuerdo? 00:11:25
Vamos con esta 00:11:27
Vale, estoy viendo que estas dos 00:11:28
Realmente son iguales 00:11:42
Así que 00:11:46
Vamos a 00:11:46
Vamos a coger el comentario de aquí 00:11:49
Lo ponemos aquí 00:11:54
Y esta la borramos 00:11:55
No, espérate 00:11:57
No, no, esta es diferente 00:12:02
Espera, vamos a coger esta de aquí 00:12:08
¿De acuerdo? 00:12:16
Bueno, aquí hay alguna cosilla que falla. Si esta paréntesis no tendría que estar aquí. Vale, perfecto. Entonces, ¿qué es lo que tenemos aquí? Aquí estamos... Vale, nos hemos posicionado en libro porque con el arroba lo que hacemos es consultar los atributos. 00:12:16
¿De acuerdo? Entonces, la x la inicializamos hasta libro, que es donde está el atributo 00:12:49
Y luego, dentro de x, lo que hacemos es arroba publicaciones 00:12:56
Cuando decimos arroba, entiende que estamos refiriéndonos a un atributo 00:13:03
Que está en el mismo nivel en el cual nos hemos posicionado 00:13:09
Y entonces lo que queremos buscar aquí son los libros cuya publicación, que es un atributo al cual accedemos con un arroba, es igual a 2002. 00:13:12
Aquí salen estos dos, porque si nos vamos aquí al XML vemos que ese atributo lo tiene en el 2002 XMLSEM y XPath, que son justo los que salen. 00:13:26
Exactamente. Entonces, de aquí nos tenemos que quedar que con el arroba accedemos a los atributos, pero nos tenemos que posicionar primero en el atributo para ello. 00:13:42
Seguimos 00:13:54
Sí, con este lo que hacemos 00:13:57
Es sacar 00:14:01
Vamos a ponerlo aquí 00:14:04
Vale 00:14:09
Vale 00:14:14
Aquí lo que estamos mirando 00:14:16
Son los autores 00:14:18
Entonces 00:14:21
Nos estamos posicionando en libro 00:14:23
Y contamos 00:14:25
El número de autores 00:14:30
Entonces lo que queremos son las filas que tengan más de un autor. Vamos a verlo aquí en el Visual Studio que se verá mejor. Aquí hay uno, aquí hay dos. ¿Ves? Aquí son dos. Aquí hay uno, aquí hay uno también. 00:14:33
En principio solo tendría que sacar ese. Entonces, aquí pongo editorial hacia Capón para que salga un poco más separado y se pueda leer mejor. ¿Ves? Igual que el libro aquí. O sea, podemos poner texto, pero el texto tiene que estar fuera de las llaves. ¿De acuerdo? 00:14:52
O sea, aquí ponemos la etiqueta libro y luego dentro del libro podemos poner lo que nos dé la gana escribiéndolo, pero una vez que, cuando queramos poner la información del XML es cuando tenemos que abrir las llaves, por eso pongo aquí libro y abro y cierro la llave, editorial y abro y cierro la llave, ¿de acuerdo? 00:15:16
Entonces, solo me saca este porque es el único que tiene dos autores, como hemos visto antes. ¿Qué es este de aquí? XML imprescindible. Exacto, este mismo. ¿Vale? Con el count. Sigamos. A ver... 00:15:37
Y bueno, este que es también de cajón que podemos consultar elementos que estén vacíos, ¿vale? Si por ejemplo, en este caso, títulos de los libros que no tienen versión electrónica, entonces tenemos un campo que es versión electrónica, entonces con un where not lo que hacemos es seleccionar los que no tengan, los que es donde ese elemento esté vacío, ¿vale? 00:15:55
Aquí por ejemplo está vacío y es donde salen. Y por último vamos a ver las funciones. Vamos a bajar esto un poquito para que se vean los dos. Si os habéis dado cuenta tenemos dos elementos que son precio y descuento. 00:16:30
¿Vale? Entonces, esto es una función que lo que hace es conseguir el precio después del descuento 00:17:10
Tenemos dos variables que son los parámetros que metemos 00:17:19
El precio y el descuento, ¿vale? Con P y D 00:17:23
Y lo que vamos a sacar es un decimal 00:17:27
Entonces, verificamos que lo que nos han metido 00:17:32
Que los parámetros que nos han incorporado tienen información, ¿vale? 00:17:37
Que no están vacíos. 00:17:43
Entonces, si el precio está vacío o el descuento está vacío, no devolvemos nada. 00:17:44
¿Vale? 00:17:50
Pero si no, lo que hacemos es inicializar la variable descuento con el descuento obtenido por el porcentaje. 00:17:52
¿Vale? 00:18:02
O sea, el precio por el descuento dividido entre 100. 00:18:03
Que es el descuento que vamos a obtener por ese libro. 00:18:06
Y lo que devolvemos es el precio menos el descuento. 00:18:10
¿Vale? Bastante facilita la función. Y entonces aquí tenemos los campos precio y los campos descuento en cada libro. Precio y descuento. 00:18:14
Lo que hacemos aquí es situarnos en el nodo libro 00:18:25
Para recorrer todos los libros como hemos hecho antes 00:18:32
Y entonces la devolvemos 00:18:37
Para devolver dos elementos tenemos que enclobarlo en uno más grande 00:18:41
En este caso es libro 00:18:48
Libro va a coger estos dos elementos 00:18:50
Que es el título 00:18:53
Y con el test metemos el valor sin las etiquetas y luego el precio mínimo. Y aquí es donde llamamos a la función, ¿vale? Con las llaves llamamos a la función con el prefijo xs decimal, porque aquí lo que estamos haciendo es diciendo que esto va a ser un decimal, ¿vale? 00:18:54
para que lo interprete bien y no tenga problemas y aquí le estamos metiendo la variable libro que hemos dicho que está posicionada aquí 00:19:21
y dentro del libro tenemos precio y dentro del libro tenemos descuento, entonces aquí lo que estamos metiendo es que el precio son 2000 00:19:30
y el descuento es el 10%, con lo cual nos tendría que devolver 1.800, ¿verdad? 00:19:41
Porque el descuento, el 10% de 2.000 son 200, que es lo que le deducimos, 1.800. 00:19:49
Y así con todos los demás. 00:19:56
Vamos a ver. 00:19:59
Exacto, 1.800. 00:20:02
Y en los demás, pues ya ha aplicado el descuento y es así como se utilizan las funciones. 00:20:04
Entonces como veis es bastante sencillito lo que estamos dando aquí 00:20:08
Obviamente se pueden hacer cosas más avanzadas 00:20:13
Pero es lo que más o menos se va a pedir en la tarea 00:20:15
Os aconsejo eso, que os descarguéis el código que os he puesto 00:20:20
Que instaléis el BaseX 00:20:25
Como os he dejado detallado en el otro vídeo 00:20:28
Por si tenéis algún problema podéis ver el vídeo y ver cómo se instala 00:20:31
y pues eso, cargáis aquí en Database New el XML de libros y luego vais probando las consultas 00:20:35
y podéis ir modificándolas o haciendo vuestras propias consultas, leeros también el contenido 00:20:45
y con el contenido podéis ir probando aquí y luego la tarea que os he puesto es bastante parecido a todo esto 00:20:51
así que lo podréis ir practicando también vosotros, ¿de acuerdo? 00:21:02
Pues nada, ya la próxima unidad será para después de Semana Santa 00:21:05
Así que nada, os deseo que tengáis buenas vacaciones 00:21:12
Y eso, nos vemos después de Semana Santa 00:21:15
Adiós 00:21:17
Materias:
Tecnología
Etiquetas:
Innovación
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado básico
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado medio
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado superior
      • Primer Curso
      • Segundo Curso
Subido por:
Alberto S.
Licencia:
Reconocimiento - Compartir igual
Visualizaciones:
4
Fecha:
25 de marzo de 2026 - 21:54
Visibilidad:
Público
Centro:
IES CIFP a Distancia Ignacio Ellacuría
Duración:
21′ 19″
Relación de aspecto:
1.78:1
Resolución:
1280x720 píxeles
Tamaño:
65.51 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid