Activa JavaScript para disfrutar de los vídeos de la Mediateca.
XSLT Y 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:
Bueno, pues ya estamos aquí de nuevo. El otro día, bueno, estamos con el tema 5, ¿verdad? Que esto va a tratar de las conversiones y adaptación del documento a XML.
00:00:00
Y bueno, es el tema 5 del lenguaje de marcas.
00:00:12
extras ni nada nos generará mucho código entonces
00:00:42
ya dije que lo que podemos hacer es descargarnos una versión de prueba de 30
00:00:50
días y bueno yo me imagino que esos 30 días serán suficientes si necesitáis
00:00:55
más días pues lo podéis crear con otra cuenta de correo electrónico y andamos
00:00:59
así porque bueno o si bien es de pago pero bueno por lo menos nos permite
00:01:04
probarla entonces ya me imagino que todos habréis instalado la herramienta y vamos a ir con él con
00:01:10
la aplicación del código y del tema vale como siempre os dejo aquí un poco de código de para
00:01:18
que vaya es trasteando y teniendo una base para ello yo ya me lo des está o sea me lo descomprimido
00:01:24
no tenemos dos partes está de test es un código que está en los contenidos vale y al final en
00:01:31
En la última página de los contenidos hay un vídeo que lo explica, pero bueno, lo voy a volver a explicar yo también para que esté claro.
00:01:37
Y luego, pues eso, hay otro código que lo he generado yo y me va a servir de base para explicaros el tema, ¿vale?
00:01:47
Y a vosotros para poder hacer la práctica, la tarea, si queréis.
00:01:57
Entonces, vale. Vamos a ejecutar Oxygen. ¿Dónde estás? Aquí. Que tarda un ratillo. Vale, perfecto.
00:02:01
Entonces aquí lo que vamos a hacer va a ser abrir el test
00:02:29
Como vemos, tenemos un archivo XML y un XSL
00:02:35
Lo que hacemos con el XSLT, o sea la transformación
00:02:47
Tenemos un archivo XSL
00:02:52
Luego el XSLT es la transformación del XML
00:02:54
Entonces lo que tenéis que pensar es que de una base de datos se pueden exportar los datos en formato XML
00:02:59
Entonces esos datos van a ser dinámicos
00:03:07
Porque realmente hoy tenemos una empresa de 20 empleados
00:03:09
Igual dentro de 5 años tenemos 500
00:03:13
Entonces esos empleados van cambiando
00:03:15
Y si queremos plasmar esta información, estos datos en una página web
00:03:18
Sería conveniente que esta página web también fuera dinámica
00:03:25
Entonces, es una forma de hacerlo. A medida que el XML va creciendo, pues nosotros, como tenemos en realidad una transformación con el XSL, vamos a hacer en el mismo XSL una programación del HTML para saber cómo queremos que se muestren los datos.
00:03:28
También se pueden añadir incluso hojas de estilo con CSS, que lo hemos visto, ¿verdad? Y luego, a la hora de decir un párrafo y aquí le ponemos la información o el nombre, apellidos y la información o la información en una tabla, ¿vale?
00:03:48
Cuando programamos la tabla en HTML con su CSS. Pues justo a la hora de plasmar los datos, de meterle los datos, es donde vamos a leerlos del XML, ¿vale?
00:04:03
Donde vamos a coger esos datos del XML con XPath. XPath lo que te permite es acceder a esos datos y se basa en que el XML está dividido en nodos.
00:04:15
Y estos nodos tienen una jerarquía. Empezando por el nodo raíz, que es agenda en este caso. Este tiene un hijo, que es persona, y a su vez persona tiene tres hijos.
00:04:29
Identificadores, dirección y teléfono. Si vamos a dirección tiene a su vez tres hijos, calle, localidad y código postal.
00:04:43
Y código postal tiene un padre que es dirección y dirección tiene un padre que es persona y persona tiene un padre que es agenda.
00:04:52
Entonces vemos que un XML normal está compuesto por nodos y esos nodos tienen una jerarquía de hijos y padres
00:04:58
Teniendo en cuenta esta jerarquía, con el XPath vamos a poder acceder a ellos
00:05:07
Entonces vemos que aquí tenemos un template con persona
00:05:15
Entonces aquí lo que estamos haciendo es posicionarnos en la información que tiene persona
00:05:22
Que sería esta de aquí. Entonces aquí utilizamos ApplyTemplate ya. Son funciones que tiene predefinidas XSL y hay que saber utilizarlas.
00:05:27
Entonces con el template nos posicionamos en persona aquí. Luego con ApplyTemplate lo que estamos haciendo es ApplyTemplateIdentificadores que es este que hemos programado aquí arriba.
00:05:43
Y lo que vamos a hacer es sacar el nombre y el apellido. Como estamos posicionados en persona, nombre y apellido está dentro de identificadores.
00:05:56
Entonces, posicionándonos en persona no podríamos acceder a nombre y apellido. Solo podríamos acceder a identificadores, a dirección y a teléfono.
00:06:09
Pero, como estamos aplicando este template de arriba, que este template de arriba sí que está en identificadores, sí que tiene acceso a nombre y apellidos.
00:06:18
Entonces, es lo que sacamos.
00:06:29
¿Vale?
00:06:31
¿Cómo ejecutamos esto?
00:06:32
Pues, primero tenemos que hacer una configuración.
00:06:34
¿Veis?
00:06:37
Configure Transformation Scenario.
00:06:39
Entonces, yo ya tengo dos escenarios creados.
00:06:42
¿Vale?
00:06:46
Pero imaginad que esta lista estuviera vacía
00:06:46
Le daríamos a New para crear un escenario
00:06:51
Yo le voy a dar a Edit porque ya está
00:06:54
Entonces os saldría una pantalla como esta al darle a New
00:06:55
Lo que queremos es ponerle la URL del XML que vamos a coger
00:07:01
Y cuando le das, por defecto es esta, mira
00:07:09
Vamos a borrarlos y los hacemos nuevos
00:07:12
Vale
00:07:15
Entonces
00:07:18
Tenemos esto, ¿no?
00:07:20
Le damos a la llave
00:07:22
Anda, me vuelven a salir
00:07:23
Safe and close
00:07:26
Vale, perfecto
00:07:29
Le damos a la llave
00:07:31
Uy, la leche
00:07:32
Vale, ahora sí
00:07:33
Perdonad
00:07:37
Genial
00:07:38
No tenemos escenarios
00:07:38
Vale, estamos empezando
00:07:40
From scratch, como dicen los ingreses
00:07:43
entonces le damos a new entonces tenemos xslt transformation on xml le damos ahí porque es la
00:07:45
opción que queremos entonces que xml vamos a coger el que viene por defecto porque como
00:07:55
estamos posicionados en el xsl vale y en la misma carpeta te viene prueba punto xml ya te lo coge
00:08:02
por defecto. Entonces simplemente dándole a la flechita lo seleccionas. ¿Y el xsl dónde está? Pues en el current file url, ¿no? En la url que estamos
00:08:12
seleccionando. Por esto es importante que cuando le deis a ejecutar estéis seleccionando al xsl, porque si seleccionáis otro archivo no lo va a pillar, ¿vale?
00:08:25
Porque aquí le estamos diciendo que el archivo que está activo es el xsl que vamos a coger, ¿vale?
00:08:35
Entonces si le damos, le damos a Apply y ya te lo ejecuta.
00:08:43
¿Veis? Aquí lo que está cogiendo es el nombre y apellidos de los identificadores.
00:08:51
Entonces si vamos al xml vemos que Inés López Pérez y aquí es Roberto Gutiérrez Gómez, ¿vale?
00:08:56
Entonces es simplemente eso. También le podemos generar ahí. Entonces, esto es un pequeño ejemplito, que es el del contenido que tenemos en la unidad. También lo explican ahí, si queréis ver el vídeo también está guay.
00:09:05
Pero bueno, es básicamente lo que os he explicado yo. Este encabezamiento, aquí como estamos utilizando OxygenXML, no haría falta, ¿vale? Va a funcionar igual.
00:09:27
Pero si estuviéramos utilizando Visual Studio Code o alguna otra herramienta, pues ya cambia la historia, ¿vale? Porque no son herramientas que estén orientadas 100% al XML como Oxygen, entonces hay que configurar de otra manera.
00:09:40
Y sí que se añaden. ¿De acuerdo? Entonces, bueno, pues vamos a cerrar esto. Ah, también os quería enseñar. Si le dais aquí a New, podéis crear un montón de formatos.
00:09:54
Y, por ejemplo, tengo aquí ya seleccionada el XSLT. Si le dais a crear, veis que ya os arma el esqueleto con todas las referencias que son necesarias y las versiones y de todo.
00:10:13
Entonces, para que lo sepáis a la hora de empezar la tarea y todo eso, si lo necesitáis.
00:10:28
Perfecto, entonces vamos a darle a abrir y vamos con el código ya más complejo que os he introducido
00:10:37
Aquí tenemos la agenda que hemos estado trabajando en unidades anteriores
00:10:47
En este caso le he metido tres contactos y como veis sigue teniendo una jerarquía
00:10:56
Agendas en el nodo raíz, luego tenemos contactos, nombre, apellidos, teléfono de edad
00:11:01
direcciones que a su vez tiene 3
00:11:07
entonces esto con el XPath
00:11:08
lo tendremos que tener en cuenta
00:11:11
vale
00:11:12
entonces
00:11:14
he creado
00:11:15
un XSL
00:11:19
con funciones
00:11:20
que normalmente se utilizan
00:11:22
entonces
00:11:25
vamos a configurar
00:11:27
la transformación
00:11:30
nos posicionamos en el XSL
00:11:32
de acuerdo
00:11:35
y le damos a la llave. Ya tenemos la anterior pero la anterior no nos vale porque si le damos se va a ejecutar así y esto no es lo que queremos.
00:11:36
Lo que queremos es crear una nueva transformación. Entonces, vamos a coger el XML por defecto, que es agenda, y en el XSL el current, como habíamos hablado.
00:11:53
entonces aquí lo que sí que va a cambiar es que vamos a generar un output
00:12:10
y le vamos a decir que se abra en el browser
00:12:18
y le vamos a llamar index.xml
00:12:21
entonces lo que estamos haciendo aquí es que queremos que se ejecute
00:12:28
que cada vez que lo ejecutemos se grabe en un archivo de salida
00:12:36
que se llame index.html
00:12:41
y se guarde, se vaya sobrescribiendo
00:12:43
sobre sí mismo, entonces si le damos
00:12:46
a aceptar
00:12:48
vamos a cambiarle el nombre
00:12:50
vamos a ponerle
00:12:53
agenda.html
00:12:54
perfecto
00:12:57
entonces
00:13:04
le damos a aplicar
00:13:06
y ya se ejecuta en el
00:13:10
browser
00:13:11
vale
00:13:13
¿Vale? Perfecto. Entonces, vamos una a una a ver cómo funciona esto del xsl y el xslt y cómo saca los datos del xml y todo eso.
00:13:15
Perdonadme que voy a ajustar aquí una cosita.
00:13:32
vale, entonces
00:13:35
lo primero que hacemos es
00:13:44
con el template posicionarnos en la raíz
00:13:46
que es agenda
00:13:49
¿vale? entonces
00:13:50
en la raíz lo que estamos haciendo es
00:13:53
teniendo acceso a todo lo que
00:13:54
contiene la raíz, que es esto
00:13:57
que he subrayado
00:13:59
entonces ya a partir de aquí lo que vamos a hacer es
00:13:59
programar nuestro html
00:14:05
Que, como os he dicho, le podemos introducir un CSS, una hoja de estilos para que quedara más bonito. Pero bueno, de momento vamos a programar nuestro HTML.
00:14:07
Que si vais a la tarea, el HTML ya se da. O sea, tendrías que copiar todo esto para luego sacarle los datos, la información.
00:14:19
Vale, y que saliera aquí. Y también el XML también se da, que ya son los datos que tenéis que añadir aquí con la transformación del XSL.
00:14:37
Vale, entonces, como veis aquí, pues vamos programando el HTML con su head, su título y su body.
00:14:52
Entonces vamos explicando cosillas
00:14:59
Hemos dicho que estamos en agenda
00:15:03
¿Vale?
00:15:06
Entonces
00:15:07
XSL y XPath tienen una serie de funciones
00:15:08
Que nos pueden ser útiles
00:15:12
Como para
00:15:14
La primera que vamos a ver es
00:15:15
Para ver el nodo actual
00:15:18
Que es con la función name
00:15:19
Y esto lo que nos saca es
00:15:20
Nodo actual
00:15:24
Agenda
00:15:25
Que es donde estamos
00:15:26
hemos dicho que estamos en la agenda
00:15:29
que es el nodo raíz
00:15:32
seguimos
00:15:33
estamos en la agenda
00:15:35
entonces decimos que
00:15:37
por cada contacto
00:15:40
que es el siguiente
00:15:42
estamos en la agenda
00:15:44
desde la agenda podemos ver los contactos
00:15:45
no podemos ver
00:15:48
lo que hay dentro
00:15:50
lo que podemos ver es el contacto
00:15:51
entonces
00:15:55
Entonces, por ejemplo, este que tenemos aquí. Estamos en la agenda, con el value of estamos extrayendo el valor. Entonces, como hemos dicho que agenda podemos ver los contactos, podríamos poner simplemente contacto y se sacaría la información de los tres contactos, pero también podemos utilizar índices.
00:15:56
índices. La diferencia es que esto no es como un array, una lista en Python que va de 0 a n-1, esto va de 1 a n. Entonces, si queremos sacar la información
00:16:22
del segundo contacto, ponemos entrecochetes 2. Estamos en la agenda, por eso podemos acceder al contacto. Y aquí estamos accediendo al segundo contacto.
00:16:34
Vale, vamos a continuación
00:16:44
Como tenemos más de un contacto, utilizamos un for each
00:16:48
Y lo que va a hacer el for each es recorrer todos los contactos, los tres
00:16:51
Porque si no, lo que haría es que si por ejemplo ponemos value of select contacto
00:16:55
Y aquí ponemos nombre y apellidos
00:17:02
Lo que nos va a hacer es sacar primero Paula, Alberto, Juan
00:17:05
Porque va a recorrer los nombres primeros
00:17:10
y luego va a recorrer los apellidos, pero con el forEach nos aseguramos de que coge cada elemento como un elemento individual
00:17:12
y es como se hace para recorrer, por ejemplo, en un XML los 500 datos que tuviéramos, ¿vale?
00:17:20
Entonces, estamos en la agenda, bajamos a contacto, como bajamos a contacto ya tenemos acceso a toda esta información,
00:17:29
entonces decimos que por cada contacto lo que va a hacer es sacar el valor de la concatenación del nombre espacio apellido
00:17:37
y además vamos a sacar el país que es el valor de teléfono y dentro de teléfono tenemos un atributo que se llama país
00:17:47
¿Y cómo es un atributo? Pues se llama con arroba país, ¿vale? Slash arroba país. Porque lo que tenemos es que estamos en agenda, hemos bajado, le hemos dicho que por cada contacto saque el país del teléfono, ¿vale?
00:17:57
Por cada contacto va a sacar el nombre y apellidos concatenado y el país de cada teléfono.
00:18:17
¿De acuerdo? Entonces, si vamos al navegador, lo que tenemos es que nos saca el nombre y los apellidos y el país.
00:18:26
Nombre y apellidos y el país.
00:18:38
Nombre de apellidos y el país. Vemos que la información del segundo contacto es de Alberto Sierra García. Entonces aquí, información del segundo contacto, que habíamos dicho que estábamos en la agenda, desde la agenda solo podemos acceder a los contactos y para acceder al segundo contacto era con el índice.
00:18:40
Entonces nos saca toda la información del segundo contacto. Todo esto. Como veis aquí. Continuamos.
00:19:05
Imaginad que tenéis un XML súper complicado
00:19:21
Que no son dos o tres niveles de jerarquía
00:19:25
Sino que tendrías que navegar mucho por el fichero
00:19:28
Hay una forma de acceder al nombre de un nodo en concreto
00:19:35
Que es con slash slash
00:19:40
Con slash slash lo que haces es que te da igual la jerarquía
00:19:41
Lo que va a buscar es nodos con este nombre
00:19:46
¿Vale? Porque hemos dicho que aquí estamos en la agenda, que desde la agenda solo podemos llegar a contacto. Para llegar a dirección tendríamos que meternos en contacto y ya acceder a esto, donde está dirección.
00:19:49
pero como ponemos en las eslas ya accedemos a dirección directamente entonces hay unos
00:20:03
operadores que es el punto y el punto punto vale no sé si habéis navegado por ms2 pero es algo
00:20:11
parecido con el punto lo que hacemos es obtener la información del mismo nivel en el que estamos
00:20:18
del nivel actual con el punto punto obtenemos información del nivel superior vale como que
00:20:24
subimos de nivel. Entonces aquí lo que estamos haciendo es slash slash dirección. Le estamos
00:20:31
diciendo que allá donde encuentre un nodo cuyo nombre sea dirección es donde vamos a obtener la
00:20:36
información. Con el punto le estamos diciendo que muestre toda la información de ese nivel. Entonces
00:20:42
con el punto lo que estamos diciendo es que saque la calle el número y el código postar.
00:20:48
Entonces, para sacar el correo, como estamos metidos dentro de dirección, necesitamos subir un nivel
00:20:53
Cuando subes un nivel ya puedes sacar el nombre, el apellido, los teléfonos, la edad y el correo
00:21:02
Entonces, lo que hacemos es, dentro de dirección subimos fuera, al nivel superior, con el punto a punto
00:21:09
Y allí sacamos el correo. Entonces, vemos que aquí nos está sacando todos los datos de la dirección, calle, número y código postal y también el correo.
00:21:17
Esto de información de segundo contacto ya lo hemos explicado. Seguimos. Seguimos con contactos.
00:21:33
Por cada contacto, es decir, que va a recorrer los tres contactos, vamos a sacar el valor cuyo país del teléfono sea Netherlands.
00:21:43
¿Qué estamos haciendo aquí? Ya estamos poniendo filtros, estamos poniendo condicionales.
00:21:57
Aquí estaríamos como haciendo un bucle recorriendo los tres contactos y dentro del bucle tendríamos un if.
00:22:03
Si país es igual a Netherlands, lo saco. Es una especie de programación que tenemos con el XPath.
00:22:11
Entonces, como veis, podemos tener condicionales, tener filtros. De los 500 usuarios que me ha devuelto la base de datos, solo quiero sacar los que tengan la lengua azul.
00:22:22
¿Vale? Si hubiera un parámetro que fuera el color de lengua, pues pondríamos color de lengua igual azul. Entonces solo te sacaría esos. ¿Vale? Y como veis, como es un atributo, pues se pone con arroba.
00:22:36
sacar los contactos más viejos
00:22:51
¿qué es lo que pasa?
00:22:55
que estos operadores
00:22:57
el operador del igual sí que se lo traga
00:22:59
pero el operador de menor y mayor
00:23:01
no, porque es un programa
00:23:04
o sea, es un lenguaje de etiquetas
00:23:06
y las etiquetas de mayor y menor
00:23:08
las utilizamos para abrir y cerrar
00:23:10
entonces si le ponemos aquí
00:23:11
un mayor, si le ponemos esta etiqueta aquí
00:23:13
el lenguaje va a interpretar
00:23:16
que la sentencia se acaba aquí
00:23:18
que es de cierre. Y por eso no podemos utilizar estos operadores. Ya lo vimos en las primeras unidades, ¿verdad?
00:23:20
Que lo que utilizamos es el greater than. Entonces, si queremos sacar los contactos más viejos, lo que vamos a hacer es que
00:23:28
Por cada contacto cuya edad sea mayor que 30, ¿vale? Vamos a ver cuántos contactos tenemos de esos. Edad 80 años, edad 31, edad 29. O sea, estamos hablando de estos dos contactos.
00:23:45
¿Vale?
00:24:06
O sea, con esta sentencia lo que hacemos es que
00:24:11
De todos los contratos que tenemos
00:24:13
Solo estamos cogiendo estos dos
00:24:15
Ahora
00:24:17
Con el XSL sort
00:24:20
Lo que hacemos es ordenarlos
00:24:24
De menor a mayor
00:24:26
Vale, aquí ya estamos sacando el teléfono
00:24:29
De Netherlands
00:24:39
Porque Netherlands
00:24:40
Es este de aquí
00:24:42
¿Vale? Y solo sacamos ese
00:24:44
A pesar de que estamos
00:24:47
Metiendo un for each
00:24:49
¿Vale? Si no estuviera discriminando
00:24:53
Me sacaría los tres
00:24:55
Pero como solo quiero el de Netherlands
00:24:57
Me saca el de Netherlands
00:24:59
¿Vale?
00:25:00
Y ahora estamos sacando los contactos más viejos
00:25:03
Sacar los contactos más viejos
00:25:05
Entonces Alberto es el primero
00:25:08
Porque Alberto es más joven
00:25:10
Y luego saca Paula, que es 80
00:25:14
¿Vale? Entonces lo que hace el sort
00:25:16
Sort, que es ordenar en inglés, claro
00:25:19
Es ordenar en orden ascendente
00:25:21
Entonces eso
00:25:25
Aquí le estamos diciendo que ordene ascendentemente por edad
00:25:32
¿Vale? Por eso saca primero a Alberto y luego a Paula
00:25:36
Y aquí con el choose lo que hacemos es que le decimos que si el nombre es Alberto
00:25:40
Esto es como un if-else
00:25:52
¿Sabes? Si pasa esto hacemos una cosa
00:25:58
Si no, hacemos otra cosa
00:26:02
¿Vale?
00:26:04
Porque es verdad que aquí esto es equivalente a if
00:26:05
Si edad es mayor que 30, pero si quisiéramos hacer un else, tendríamos que utilizar un choose
00:26:09
En plan de, si edad es mayor que 30, hacemos esto
00:26:16
Y si no, hacemos otra cosa
00:26:21
Pues para hacer ese tipo de estructuras tenemos que utilizar un choose
00:26:23
Entonces aquí lo que estamos haciendo es, cuando el nombre sea igual a Alberto
00:26:27
Y fijaros en una cosa que tampoco os he dicho
00:26:34
No son comillas dobles, son comillas simples
00:26:37
¿Vale? Para las cadenas de caracteres
00:26:40
Comillas simples, porque si no, no lo va a pillar
00:26:43
Esto de las comillas simples está al lado del cero
00:26:47
¿Vale? A la derecha del cero en el teclado
00:26:53
Es la que tiene el cierre de la interrogación arriba
00:26:55
¿Vale? Pues eso, que tenéis que utilizar comillas simples
00:27:04
Aquí estoy utilizando comillas simples. Entonces volvemos. Estructura choose. Cuando el nombre sea igual a Alberto, lo cambiamos a Alberto, ahora se llama Pedro.
00:27:09
Si no, sacamos el valor. Ya está. ¿Vale? Aquí podríamos hacer otra cosa, pero lo dejamos así. ¿Vale? Entonces, aquí lo que estamos haciendo es que cuando se llama Alberto lo cambiamos y si no, sacamos el valor.
00:27:24
Para que veáis cómo es una estructura de if-else. ¿Vale? Y es lo que tenemos aquí. Por eso no me saca Alberto. Me saca Alberto, ahora se llama Pedro y luego me saca Paula.
00:27:41
vale y por último el operador estrella aquí lo que estamos haciendo es seleccionar todo lo que
00:27:54
contenga la dirección que es esto de aquí y me diréis jolín y por qué no simplemente lo pongo
00:28:10
quitando esto verdad vamos a ver las diferencias con estrella como veis aquí lo que estamos
00:28:21
haciendo es ponerle el nombre de cada nodo verdad y luego le sacamos la información del nodo del
00:28:30
nivel actual porque es el punto recordad que el nivel actual era el punto el nivel superior era
00:28:44
era el punto punto vale entonces con el asterisco sale aquí calle
00:28:48
la calle el número el código postal la calle número el código postal si le
00:28:56
quitamos el asterisco
00:29:01
ya te sale todo junto
00:29:08
¿Vale? Esa es la diferencia. Que con el asterisco te va a ir, digamos, sacando los elementos que hay dentro de ese nivel, pero uno a uno.
00:29:12
¿Vale? Porque si lo ponemos así, lo que va a hacer es que te va a sacar todo.
00:29:27
Nodo actual, aquí está en dirección
00:29:32
Que hemos dicho que al principio estamos en agenda
00:29:34
Ups, perdón
00:29:40
En agenda porque nos hemos posicionado en agenda
00:29:41
Luego estamos en contacto
00:29:45
Y dentro de contacto hemos ido dirección
00:29:48
Agenda, contacto y dirección
00:29:50
Estamos aquí
00:29:54
Vale, nodo actual, dirección
00:29:55
Datos, todos estos
00:29:57
Y por eso me saca ahí, así
00:29:59
Nodo actual, dirección
00:30:01
Datos, todos estos
00:30:02
Sin embargo, si le ponemos barra asterisco, ya lo que va a hacer es ir elemento por elemento.
00:30:04
Ya no se va a meter en todo esto, sino que va a decir por cada elemento, por eso es un forEach,
00:30:22
Por cada elemento que encuentre dentro de dirección va a sacar una línea. Por eso aquí cuando le decimos el nombre del primer elemento no va a sacar dirección, va a sacar el primer elemento.
00:30:35
luego va a volver a recorrer el segundo y te va a sacar el segundo elemento
00:30:56
va a volver a recorrer el tercero y te va a sacar el tercer elemento
00:31:00
y te va a sacar el valor de ese nivel
00:31:03
entonces lo que va a hacer es coger calle
00:31:06
posicionarse aquí, ¿vale?
00:31:10
o sea, con el asterisco estamos aquí, en dirección
00:31:13
y con el asterisco le decimos que queremos recorrer cada elemento
00:31:18
que sea hijo del padre que es dirección.
00:31:22
Entonces, nos posicionamos aquí.
00:31:29
Con el name le decimos que estamos en calle.
00:31:31
Y sacamos el valor con el punto.
00:31:33
Lo mismo pasa para número, lo mismo pasa para código postal.
00:31:38
¿De acuerdo?
00:31:42
Entonces, por eso lo sacaré con este formato.
00:31:45
Y esa es la explicación del código que os he presentado.
00:31:50
Ahora, con este código ya podréis hacer la tarea, como os he dicho, que simplemente es coger el XML que os dan en la tarea, copiarlo y luego os posicionáis en el nodo, copiáis el HTML y con el XPath y el XSL vais cogiendo la información que os va interesando y filtrando por lo que necesitéis.
00:31:54
ya sabéis que los filtros pues podéis hacer
00:32:21
modo if o modo if else
00:32:24
vale, y con eso
00:32:27
ya tendréis suficiente
00:32:30
así que nada, pues
00:32:32
que se os dé bien la unidad y la tarea y nos vemos en la próxima
00:32:35
sesión, adiós
00:32:39
- 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
- Ciclo formativo de grado básico
- Subido por:
- Alberto S.
- Licencia:
- Reconocimiento - Compartir igual
- Visualizaciones:
- 6
- Fecha:
- 23 de febrero de 2026 - 20:20
- Visibilidad:
- Público
- Centro:
- IES CIFP a Distancia Ignacio Ellacuría
- Duración:
- 00′ 06″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 125.80 MBytes