Saltar navegación

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

XML XPath - 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 26 de diciembre de 2020 por Amadeo M.

258 visualizaciones

Descargar la transcripción

Uno de los aspectos más importantes de un fichero XML, sobre todo si es muy grande, si es extenso, es cómo buscar dentro de él, cómo obtener información buscando en él. 00:00:00
Algo así como cuál es ese lenguaje SQL, pero aplicado a XML. 00:00:12
Y ese lenguaje se llama XPath. 00:00:17
Vamos a ir a eso. 00:00:20
Lo primero que tenemos que entender es que un documento XML es un grafo. 00:00:21
Un grafo en forma de árbol. 00:00:27
Es decir, donde empezamos en un elemento raíz, que es la primera etiqueta, el primer elemento que arranca nuestro fichero XML, 00:00:30
y poco a poco vamos descendiendo a través de nodos hijos para mostrar toda la información. 00:00:40
El primer elemento es el elemento raíz, el segundo es cualquier elemento, dentro de este habrá atributos, 00:00:46
dentro de cualquier elemento puede haber textos, puede haber comentarios, instrucciones de procesamiento y un espacio de nombres. 00:00:53
Si tuviéramos el ejemplo que hemos estado viendo hasta ahora, este de aquí, veremos que esta primera definición no se considera ni siquiera nada, simplemente nos indica características de lo que viene posteriormente. 00:01:00
Biblioteca es el elemento raíz, dentro de ello hay varios libros y dentro de cada libro, título, autor y fecha de publicación, con o sin atributos. 00:01:14
Es decir, esta información, si la pusiéramos en forma de grafo, correspondería a esto de aquí. 00:01:26
Raíz, biblioteca, libro, libro, libro, título, autor, fecha de publicación, título, autor, fecha de publicación, título, autor, fecha de publicación. 00:01:33
E incluso el autor, en este caso, por ejemplo, sería simplemente su nombre, y en este caso, indicaría su fecha de nacimiento y su nombre. 00:01:42
Bueno, con esto vemos un ejemplo de cómo es esa estructura. 00:01:51
A partir de aquí podemos ir construyendo una serie de características para buscar dentro del XML. 00:01:54
Vamos a empezar por el primer elemento que es el eje principal, es decir, por dónde comienza la raíz de este documento. 00:02:05
Y esto se representa simplemente con la barra, una barra inclinada. 00:02:14
Entonces esto simplemente nos está diciendo que estamos en el arranque. 00:02:19
Entonces, si nosotros definimos arranque biblioteca, arranque libro, arranque autor, estamos refiriéndonos a cada uno de los autores de libros que están en el arranque biblioteca. 00:02:23
Si vemos aquí, pues vamos a ir viendo los autores y veremos que sería Milán Kundera, Mario Vargas Llosa y otra vez Mario Vargas Llosa. 00:02:38
bueno, vamos a ver que efectivamente esta es la información que aquí estamos obteniendo 00:02:49
sin embargo, si pusiéramos raíz autor, pues no tendríamos ninguna información 00:02:56
puesto que directamente en raíz no está la etiqueta autor 00:03:00
si pusiéramos biblioteca autor, lo mismo nos ocurriría 00:03:06
porque biblioteca y dentro directamente autor no está, por delante está libro 00:03:10
Y si pusiéramos biblioteca, libro, autor y el atributo que se indica con esta arroba fecha de nacimiento, pues obtendríamos las fechas de nacimiento que existen en el documento, que son esta de aquí y esta de aquí. 00:03:14
En este caso coinciden porque corresponden al mismo autor. 00:03:31
Así también podemos buscar biblioteca, libro y este atributo 00:03:35
Pero veríamos que dentro del libro no existe el atributo 00:03:40
Existe el atributo dentro del autor 00:03:44
Con lo cual podemos ir viendo desde raíz recorriendo el camino hasta la información 00:03:47
Con dos barras lo que estamos indicando es todos los descendientes que cumplen esas condiciones 00:03:53
Por ejemplo, dentro de biblioteca, dentro de la raíz biblioteca queremos todos los autores 00:03:58
Muy bien, pues aquí están. Incluso, podríamos prescindir de la teca. Dame todos los autores que haya. Pues aquí están todos. O, dame todos los autores y dentro todos los libros. Y claro, vemos que no existe porque dentro de autor no hay nunca un libro. 00:04:04
Si seguimos, dame todos los atributos año 00:04:22
Pues aquí están todos los atributos año que hay en nuestro fichero 00:04:27
Unos corresponden a la fecha de publicación, estos de aquí 00:04:32
¿Vale? 00:04:35
Bien 00:04:38
Con dos puntos, igual que custodiamos en el sistema operativo en directorios 00:04:38
Estamos hablando del elemento padre 00:04:43
Entonces nosotros podríamos decir 00:04:45
Dame todo lo que esté en la raíz biblioteca 00:04:47
Dentro libro, dentro autor, dentro de la atributo fecha de nacimiento 00:04:50
Y ahora sube hacia arriba un nivel 00:04:53
Que volveríamos otra vez al autor 00:04:55
De aquellos que tienen fecha, atributo, fecha de nacimiento 00:04:58
Que son estos dos de aquí 00:05:02
Vemos que no me está recuperando este primero 00:05:03
Este primero, mi gran cundera 00:05:06
Del cual no tenemos un atributo fecha de nacimiento 00:05:10
Los demás sí me lo recuperan 00:05:14
O devuélveme todos los atributos de fecha de nacimiento 00:05:17
subiendo dos niveles 00:05:20
es decir, todos los libros de ADIAN 00:05:21
que tienen fecha de nacimiento 00:05:24
en este caso esto es lo de aquí 00:05:26
con la barra indicamos 00:05:28
pues como clásicamente se hace en informática 00:05:31
la O 00:05:33
devuélveme estos 00:05:34
o estos, todos ellos 00:05:36
¿vale? 00:05:38
y así podemos ir buscando 00:05:40
información que esté dentro 00:05:42
de nuestro XML 00:05:45
además podemos poner condiciones 00:05:47
Por ejemplo, podemos indicar también los elementos que tienen un atributo 00:05:49
Queremos todos los autores que tienen fecha de nacimiento 00:05:53
Esto era muy parecido a algo que hemos hecho anteriormente 00:05:56
O incluso, devuélveme el primer libro que haya 00:05:59
O el último, last, entre paréntesis 00:06:03
Es decir, como una función 00:06:08
Devuélveme el último libro 00:06:10
O el último libro menos uno 00:06:12
Con lo cual podemos ahí realizar pequeñas funciones matemáticas para poder buscar elementos. 00:06:15
O conducciones más complejas, devuélvame las fechas de publicaciones cuyo año sea mayor que 1970, que me devolvería esto de aquí. 00:06:23
O aquellos libros cuyo autor sea igual a Mario Vargas Llosa, con lo cual me aparecerían esos libros concretos. 00:06:33
Incluso con el punto puedo referenciar donde estoy exactamente 00:06:42
Devuélveme el atributo año 00:06:46
Donde el propio atributo año 00:06:47
Sea mayor que 1970 00:06:49
Aquí estamos 00:06:51
O donde el propio autor 00:06:53
Sea Mario Vargas Llosa 00:06:55
Aquí lo tenemos 00:06:56
O condiciones más complejas 00:06:57
Devuélveme los libros 00:06:59
Cuyo autor sea Mario Vargas Llosa 00:07:01
Y la fecha de publicación 00:07:03
Su año sea el 73 00:07:06
En este caso 00:07:07
Cambiamos la condición 00:07:09
AND por la condición OR. 00:07:10
Bueno, incluso encadenar aquellos que cumplen que el autor sea Mario Vargas Llosa 00:07:16
y la fecha de publicación sea el 73. 00:07:23
Con esto podemos establecer montones de búsquedas sobre el fichero. 00:07:27
Una pequeña diferencia es cuando quiero devolver el nodo, 00:07:32
que es lo que estamos devolviendo la mayoría de las veces anteriores, 00:07:35
O cuando quiero devolver el texto, que es simplemente la parte que está adentro de las etiquetas. 00:07:37
Y además el valor del asterisco, que es todos los hijos o todos los descendientes según si se lo aplico a la barra o si se lo aplico a la doble barra. 00:07:44
Entonces aquí podríamos ver ejemplos. 00:07:56
También todos los atributos, me da igual que se aplique a la raíz del documento o a doble barra, es decir, a todos los elementos descendientes 00:07:58
Así podemos ir complicando las búsquedas, indicando elementos de este tipo 00:08:07
Devuélveme la ficha de publicación de todos los que cumplan que el año es mayor que el 1970 00:08:17
Sube un nivel hacia arriba y me devuelve su título 00:08:24
Tendríamos este resultado 00:08:28
O devuélveme todos los libros cuyo autor es Mario Vargas Llosa 00:08:31
Con lo cual me devolvería completamente el nodo libro de todos esos documentos 00:08:36
En este caso incluso podríamos decir 00:08:41
Devuélveme de ese autor todo lo que haya por encima 00:08:44
Y llegaríamos a la misma solución en este caso 00:08:48
O todos los que se han publicado en 1969 00:08:50
Su autor 00:08:55
Y entonces pues veríamos esta información de así. Aquí ya vemos que esto se puede decir de muy diversas maneras. O expresiones anidadas. Entonces con este mismo documento podemos decir devuélveme el libro cuyo título en la vida está en otra parte y devuélveme el año de su fecha de publicación. Esto es lo que me devolvería. 00:08:57
O la fecha de publicación cuyo año es el 73 00:09:20
Devuélveme todos sus libros y de ellos solamente el título 00:09:25
Con lo cual tendríamos esta información 00:09:30
Bueno, ya la complejidad en que fuéramos incluyendo diversos elementos 00:09:33
Pues va a depender básicamente de nuestra habilidad a la hora de buscar 00:09:37
¿Cómo podemos probar todos estos programas? 00:09:42
Pues voy a copiar esta información de aquí 00:09:51
Y me la voy a llevar a un programa que me permite testar, probar estas entradas 00:09:53
Voy a copiarlo aquí, esta información 00:10:01
La copio aquí, toda la información de este ejemplo 00:10:04
Y yo ahora puedo decirle una expresión xpad y probarla 00:10:07
Voy a decir que no me incluya nada raro 00:10:12
Y yo podría decir simplemente devuélveme, por ejemplo, para probarlo 00:10:14
Que me devuelva todos los títulos 00:10:18
y yo voy a text 00:10:20
xpath 00:10:22
y cuando lo pruebe 00:10:24
me va a devolver 00:10:26
efectivamente los títulos 00:10:27
¿de acuerdo? 00:10:30
por ejemplo puedo probar también 00:10:31
pues yo que sé, todo aquello 00:10:33
todos los títulos 00:10:35
en los cuales 00:10:37
puedo probar todas las aplicaciones 00:10:39
cuya fecha 00:10:42
de publicación 00:10:43
su año 00:10:45
el atributo año 00:10:48
sea igual a 1973 00:10:50
y de estos 00:10:53
quiero saber 00:10:55
subiendo 00:10:57
cuál es su título 00:10:59
podría probar esta información 00:11:00
testear 00:11:02
y me saldría aquí 00:11:04
pues efectivamente la misma información que teníamos 00:11:06
antes o muy parecida 00:11:09
etcétera, etcétera 00:11:10
es decir, hay una serie de 00:11:12
aplicaciones que nos permiten formatear 00:11:14
y probar 00:11:17
XPath 00:11:18
De acuerdo, en este caso hemos utilizado freeformature.com para probarlo, pero existe un montón de más e incluso existen editores que permiten hacer búsquedas por XPath y es muy interesante utilizarlo para probar nuestros ejemplos. 00:11:19
Idioma/s:
es
Autor/es:
Amadeo Mora
Subido por:
Amadeo M.
Licencia:
Dominio público
Visualizaciones:
258
Fecha:
26 de diciembre de 2020 - 18:50
Visibilidad:
Público
Centro:
IES CLARA DEL REY
Duración:
11′ 40″
Relación de aspecto:
1.78:1
Resolución:
1364x768 píxeles
Tamaño:
84.01 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid