Activa JavaScript para disfrutar de los vídeos de la Mediateca.
XML XPath - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
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:
- 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