1 00:00:00,000 --> 00:00:02,359 Pues venga 2 00:00:02,359 --> 00:00:06,040 Nos vamos a eliminar libro por id 3 00:00:06,040 --> 00:00:07,419 Que será otra vez 4 00:00:07,419 --> 00:00:08,400 Vámonos a sacar 5 00:00:08,400 --> 00:00:14,150 Todos los libros 6 00:00:14,150 --> 00:00:20,339 Libro 7 00:00:20,339 --> 00:00:21,980 Al final veis que se trata de hacer 8 00:00:21,980 --> 00:00:23,440 Más o menos lo mismo una y otra vez 9 00:00:23,440 --> 00:00:25,079 Pero antes de eso 10 00:00:25,079 --> 00:00:28,260 Teniendo claro en la cabeza lo que queremos hacer 11 00:00:28,260 --> 00:00:30,179 Que nodos nos interesa recorrer 12 00:00:30,179 --> 00:00:31,640 Y que vamos a hacer con cada nodo 13 00:00:31,640 --> 00:00:33,140 Si empezamos a programar 14 00:00:33,140 --> 00:00:34,659 Sin tener antes en la cabeza 15 00:00:34,659 --> 00:00:36,500 lo que queremos hacer pues 16 00:00:36,500 --> 00:00:38,960 se nos complica y se nos han 17 00:00:38,960 --> 00:00:41,100 pasado las dos horas del examen 18 00:00:41,100 --> 00:00:42,000 porque 19 00:00:42,000 --> 00:00:45,140 el examen tiene que resolver 20 00:00:45,140 --> 00:00:46,840 seguramente ya lo dije 21 00:00:46,840 --> 00:00:48,259 en su momento y lo vuelvo a decir 22 00:00:48,259 --> 00:00:49,719 aquí tenéis 23 00:00:49,719 --> 00:00:52,859 para mi examen tenéis todos los proyectos, todo lo que 24 00:00:52,859 --> 00:00:54,780 traigáis en vuestro disco duro, en vuestro como 25 00:00:54,780 --> 00:00:55,920 queráis trabajar 26 00:00:55,920 --> 00:00:58,719 entonces no me vale que me digáis 27 00:00:58,719 --> 00:01:00,759 jo, no me funciona, no 28 00:01:00,759 --> 00:01:02,840 elimina esto, no recupera 29 00:01:02,840 --> 00:01:04,340 esto, pero es que este 30 00:01:04,340 --> 00:01:06,840 código está bien, valóramelo, sí, claro 31 00:01:06,840 --> 00:01:08,879 está bien, está estupendo, vas copia y pegado de tu 32 00:01:08,879 --> 00:01:10,920 proyecto, yo lo que valoro es que 33 00:01:10,920 --> 00:01:13,079 resuelva, resuelva el requisito 34 00:01:13,079 --> 00:01:15,060 que yo pido, aplicación 35 00:01:15,060 --> 00:01:16,859 que elimine 36 00:01:16,859 --> 00:01:18,579 no sé qué, que haga tal cosa 37 00:01:18,579 --> 00:01:20,920 eso lo tiene que hacer, en los datos 38 00:01:20,920 --> 00:01:22,159 tiene que eliminar 39 00:01:22,159 --> 00:01:24,579 añadir lo que sea en los datos 40 00:01:24,579 --> 00:01:26,879 que es lo que, nuestros exámenes son eso 41 00:01:26,879 --> 00:01:28,859 gestionar datos, hacer el CRUD 42 00:01:28,859 --> 00:01:30,760 de la base de datos, de los ficheros, de lo que sea 43 00:01:30,760 --> 00:01:33,200 y eso lo tiene que hacer, si no lo hace 44 00:01:33,200 --> 00:01:35,019 pues no se puede puntuar, porque 45 00:01:35,019 --> 00:01:37,519 hombre, a menos que no lo haga 46 00:01:37,519 --> 00:01:39,459 por alguna cosa 47 00:01:39,459 --> 00:01:41,400 chorra, que sea 48 00:01:41,400 --> 00:01:43,040 yo que sé, pero 49 00:01:43,040 --> 00:01:45,519 no me pidáis que puntúe por 50 00:01:45,519 --> 00:01:47,459 oye, es que este for está que te cagas 51 00:01:47,459 --> 00:01:49,239 de bien hecho, claro que está que te cagas 52 00:01:49,239 --> 00:01:51,379 si tenéis vuestros proyectos, copiar un 53 00:01:51,379 --> 00:01:53,599 for que está que te cagas, es muy fácil 54 00:01:53,599 --> 00:01:55,140 si no resuelve el asunto 55 00:01:55,140 --> 00:01:57,420 luego, todo esto venía a cuento 56 00:01:57,420 --> 00:01:59,159 de que 57 00:01:59,159 --> 00:02:02,120 antes de hacer un código uno tiene que pensar 58 00:02:02,120 --> 00:02:04,340 qué tiene que hacer, tiene que pensarlo 59 00:02:04,340 --> 00:02:06,200 hacer un pequeño diseño en la cabeza 60 00:02:06,200 --> 00:02:08,280 y cuando lo tiene claro ya se pone 61 00:02:08,280 --> 00:02:10,139 a construirlo, no se pone a escribir 62 00:02:10,139 --> 00:02:11,979 sin más, y ese construirlo 63 00:02:11,979 --> 00:02:14,120 pues ya implicará muchas copias y pegas, claro que 64 00:02:14,120 --> 00:02:15,919 los implicará, porque uno tiene en la cabeza todo 65 00:02:15,919 --> 00:02:18,259 pero ya serán con criterio, porque uno ya tiene su diseño 66 00:02:18,259 --> 00:02:20,039 en la cabeza claro, pues 67 00:02:20,039 --> 00:02:22,199 entonces aquí, nuestro diseño es 68 00:02:22,199 --> 00:02:24,379 cojo el listado de libros 69 00:02:24,379 --> 00:02:26,259 lo recorro y para cada libro 70 00:02:26,259 --> 00:02:27,960 si es el que tengo que eliminar 71 00:02:27,960 --> 00:02:56,930 Me voy al padre y lo borro, porque aquí el que borra es el padre. Pues venga, tenemos ya los libros, recorremos y ahora aquí ya. ¿Este libro toca eliminarlo? Vale, pues aquí el parámetro de búsqueda es el id. El id es un atributo. 72 00:02:56,930 --> 00:02:58,830 entonces 73 00:02:58,830 --> 00:03:00,270 un atributo 74 00:03:00,270 --> 00:03:02,629 no se saca como los nodos hijos 75 00:03:02,629 --> 00:03:04,490 si yo eliminara por título 76 00:03:04,490 --> 00:03:06,650 tendríamos que dentro del libro 77 00:03:06,650 --> 00:03:08,310 hacer el getElementsByTagName 78 00:03:08,310 --> 00:03:09,610 porque los nodos hijos 79 00:03:09,610 --> 00:03:12,270 se sacan por getElementsByTagName 80 00:03:12,270 --> 00:03:14,590 pero el nodo atributo se saca con otro método 81 00:03:14,590 --> 00:03:15,969 que será 82 00:03:15,969 --> 00:03:18,069 getAtributeCasiSeguro 83 00:03:18,069 --> 00:03:19,770 pero vamos a ver si nos lo ofrece 84 00:03:19,770 --> 00:03:24,490 vale, pues si mi libro 85 00:03:24,490 --> 00:03:26,830 vamos a ponerlo aparte para que se vea mejor 86 00:03:26,830 --> 00:03:39,770 Element libro igual a libros punto, uy, punto ítem i. 87 00:03:41,110 --> 00:03:42,849 Y hacemos el casting. 88 00:03:45,599 --> 00:03:55,500 Vale, pues si mi libro, su atributo, vale, es, eso, muy bien. 89 00:03:55,500 --> 00:03:57,360 Su atributo llamado id 90 00:03:57,360 --> 00:04:01,300 Su atributo llamado id 91 00:04:01,300 --> 00:04:05,520 Es igual 92 00:04:05,520 --> 00:04:07,460 Al id 93 00:04:07,460 --> 00:04:09,199 Que me han pasado 94 00:04:09,199 --> 00:04:11,620 Uy, que tonterías hago 95 00:04:11,620 --> 00:04:15,909 Joder, ponte ahí 96 00:04:15,909 --> 00:04:20,069 Ahora, equals id 97 00:04:20,069 --> 00:04:23,569 Si es igual a ese id 98 00:04:23,569 --> 00:04:25,329 Entonces, ¿qué tenemos que hacer ahí? 99 00:04:25,910 --> 00:04:27,350 Irnos al padre 100 00:04:27,350 --> 00:04:29,410 Claro, libro.id 101 00:04:29,910 --> 00:04:31,029 get 102 00:04:31,029 --> 00:04:33,769 a mi padre 103 00:04:33,769 --> 00:04:35,430 y le pedimos a mi padre 104 00:04:35,430 --> 00:04:36,189 que 105 00:04:36,189 --> 00:04:39,290 me elimine 106 00:04:39,290 --> 00:04:52,160 vale, está removiendo 107 00:04:52,160 --> 00:04:54,259 borrando el nodo enterito 108 00:04:54,259 --> 00:04:56,300 con todos sus hijos, el nodo entero 109 00:04:56,300 --> 00:04:56,660 libro 110 00:04:56,660 --> 00:05:03,189 no, estamos en el doc que está cargado en memoria 111 00:05:03,189 --> 00:05:05,790 vale, lo borra 112 00:05:05,790 --> 00:05:07,589 vamos a tener que mandar 113 00:05:07,589 --> 00:05:08,949 el doc otra vez 114 00:05:08,949 --> 00:05:11,350 antes no hemos necesitado hacerlo porque lo único que hacíamos era 115 00:05:11,350 --> 00:05:13,129 consultar, pero ya estamos 116 00:05:13,129 --> 00:05:15,490 tocando el árbol, si ese 117 00:05:15,490 --> 00:05:17,449 árbol quiero que se refleje en el fichero, lo tengo 118 00:05:17,449 --> 00:05:19,329 que escribir en el fichero, pero eso lo hago ahora 119 00:05:19,329 --> 00:05:21,449 rápidamente y ya está, vale, entonces 120 00:05:21,449 --> 00:05:23,170 aquí, bueno, este método 121 00:05:23,170 --> 00:05:25,470 hemos puesto un boolean, porque como este no devuelve nada 122 00:05:25,470 --> 00:05:27,610 pues aprovechamos y con el boolean 123 00:05:27,610 --> 00:05:30,750 ponemos true o false, si 124 00:05:30,750 --> 00:05:32,730 lo ha borrado o no lo ha borrado 125 00:05:32,730 --> 00:05:34,910 normalmente los métodos que 126 00:05:34,910 --> 00:05:37,250 en las propias colecciones 127 00:05:37,250 --> 00:05:39,529 así ocurría, los métodos que eliminan 128 00:05:39,529 --> 00:05:41,310 o añaden, añade una 129 00:05:41,310 --> 00:05:43,189 lista, borrado una lista, tenían un 130 00:05:43,189 --> 00:05:45,170 boolean de valor de retorno que te 131 00:05:45,170 --> 00:05:47,149 confirmaba si realmente había 132 00:05:47,149 --> 00:05:49,029 borrado algo o no había borrado nada 133 00:05:49,029 --> 00:05:51,129 bueno, pues aquí ponemos ese boolean para seguir 134 00:05:51,129 --> 00:05:53,050 un poco ese patrón, entonces 135 00:05:53,050 --> 00:05:55,250 aquí podemos aprovechar 136 00:05:55,250 --> 00:05:56,970 aquí tendríamos un problema que 137 00:05:56,970 --> 00:05:58,850 lo podríamos ver en un método de abajo 138 00:05:58,850 --> 00:06:00,750 que 139 00:06:00,750 --> 00:06:01,569 cuidado 140 00:06:01,569 --> 00:06:04,970 por cuando borramos 141 00:06:04,970 --> 00:06:07,170 en general, cuando 142 00:06:07,170 --> 00:06:08,870 yo recorro una colección 143 00:06:08,870 --> 00:06:10,050 la recorro 144 00:06:10,050 --> 00:06:13,750 y lo que hago con los nodos 145 00:06:13,750 --> 00:06:15,550 si procedes borrarlos 146 00:06:15,550 --> 00:06:17,550 recordad que ahí rápidamente 147 00:06:17,550 --> 00:06:19,269 se nos abre un warning rojo 148 00:06:19,269 --> 00:06:21,810 de ostras, que cosa tan peligrosa 149 00:06:21,810 --> 00:06:23,470 recorro y elimino 150 00:06:23,470 --> 00:06:25,250 porque al eliminar cambia la longitud 151 00:06:25,250 --> 00:06:27,230 de la lista, luego cuando el recorrido 152 00:06:27,230 --> 00:06:29,370 avanza, la longitud ha cambiado 153 00:06:29,370 --> 00:06:30,990 le puede salir un me salido 154 00:06:30,990 --> 00:06:32,889 por mil cuestiones 155 00:06:32,889 --> 00:06:35,149 entonces, esa es una situación 156 00:06:35,149 --> 00:06:37,350 que nos genera problemas 157 00:06:37,350 --> 00:06:38,990 el año pasado ya nos generaba problemas 158 00:06:38,990 --> 00:06:40,889 porque si recorriamos 159 00:06:40,889 --> 00:06:41,870 una colección con un for 160 00:06:41,870 --> 00:06:44,850 si el elemento cumple esto, bórralo 161 00:06:44,850 --> 00:06:46,689 pim, depende de donde 162 00:06:46,689 --> 00:06:48,569 estaba el elemento, si estaba al principio o al final te salía 163 00:06:48,569 --> 00:06:50,069 un error concurrente 164 00:06:50,069 --> 00:06:52,310 entonces decíamos, cuidado 165 00:06:52,310 --> 00:06:54,629 esa situación en general se dé cuando 166 00:06:54,629 --> 00:06:56,410 se dé, recorrer 167 00:06:56,410 --> 00:07:03,589 vale, esa situación en general 168 00:07:03,589 --> 00:07:05,269 se dé cuando se dé 169 00:07:05,269 --> 00:07:07,129 que es, yo recorro 170 00:07:07,129 --> 00:07:08,189 recorro, recorro 171 00:07:08,189 --> 00:07:11,089 y lo que hago dentro con esos elementos 172 00:07:11,089 --> 00:07:12,889 a veces puede ser eliminarlos 173 00:07:12,889 --> 00:07:16,029 eso cambiamos de patrón 174 00:07:16,029 --> 00:07:17,370 y de hecho 175 00:07:17,370 --> 00:07:19,610 las colecciones nos ofrecían 176 00:07:19,610 --> 00:07:21,490 los iteradores, nos ofrecían alternativas 177 00:07:21,490 --> 00:07:23,629 para poder hacer eso sin esta estructura 178 00:07:23,629 --> 00:07:24,709 recorro, recorro 179 00:07:24,709 --> 00:07:26,790 y lo que hago dentro de cada elemento 180 00:07:26,790 --> 00:07:28,329 borrar si procede 181 00:07:28,329 --> 00:07:31,129 entonces aquí tenemos esa situación 182 00:07:31,129 --> 00:07:32,689 que no nos gusta nada 183 00:07:32,689 --> 00:07:34,170 no nos gusta nada 184 00:07:34,170 --> 00:07:37,449 si diera la casualidad de que el libro 185 00:07:37,449 --> 00:07:39,370 es el último, pues no pasaría nada 186 00:07:39,370 --> 00:07:41,569 porque ya este forno volvería a entrar 187 00:07:41,569 --> 00:07:43,649 pero si está entre medias puede que pase 188 00:07:43,649 --> 00:07:45,810 pero aquí tenemos suerte 189 00:07:45,810 --> 00:07:47,709 aquí tenemos suerte porque estamos 190 00:07:47,709 --> 00:07:49,810 borrando por clave primaria 191 00:07:49,810 --> 00:07:51,170 entonces 192 00:07:51,170 --> 00:07:53,829 en cuanto lleguemos al libro a borrar 193 00:07:53,829 --> 00:07:55,790 como es la clave primaria, esos son los requisitos 194 00:07:55,790 --> 00:07:58,029 del modelo que me han dado, yo ya puedo decir 195 00:07:58,029 --> 00:07:59,769 ya está, ya no sigo recorriendo 196 00:07:59,769 --> 00:08:01,709 entonces me ahorro 197 00:08:01,709 --> 00:08:03,250 el tener que trabajar de otra manera 198 00:08:03,250 --> 00:08:05,449 porque yo podría hacer aquí, como 199 00:08:05,449 --> 00:08:07,949 Rosa no está y no me ve 200 00:08:07,949 --> 00:08:09,670 pues yo podría hacer aquí 201 00:08:09,670 --> 00:08:10,430 un return true 202 00:08:10,430 --> 00:08:12,709 y me quedo 203 00:08:12,709 --> 00:08:13,970 tan tranquila 204 00:08:13,970 --> 00:08:15,209 ¿vale? 205 00:08:16,329 --> 00:08:18,730 entonces aquí no tengo que inventarme un patrón 206 00:08:18,730 --> 00:08:20,689 distinto para hacer el borrado 207 00:08:20,689 --> 00:08:21,750 dentro de colección 208 00:08:21,750 --> 00:08:24,110 porque en cuanto he borrado 209 00:08:24,110 --> 00:08:26,129 el que tiene su ID 210 00:08:26,129 --> 00:08:27,089 me pido 211 00:08:27,089 --> 00:08:31,050 y así ya juego con este boolean 212 00:08:31,050 --> 00:08:32,970 si he eliminado de forma efectiva 213 00:08:32,970 --> 00:08:33,690 algo aviso 214 00:08:33,690 --> 00:08:36,929 y si me vengo aquí es porque no elimine 215 00:08:36,929 --> 00:08:37,990 nada de forma efectiva 216 00:08:37,990 --> 00:08:39,190 entonces me avisa con un falso 217 00:08:39,190 --> 00:08:40,889 Entonces, yo ya sé. 218 00:08:42,230 --> 00:08:43,190 Venga, pues ya hemos. 219 00:08:44,590 --> 00:08:45,409 Sí, claro. 220 00:08:45,789 --> 00:08:49,149 Si quisieras borrar por el título, igual, no pasa nada. 221 00:08:49,250 --> 00:08:54,210 Lo que pasa es que esta condición sería libro.getLMSByTagName 222 00:08:54,210 --> 00:08:57,409 título.item0.getTextContent. 223 00:08:57,870 --> 00:09:00,809 Se quedaría un poquito más grande que getAttribute, ¿vale? 224 00:09:02,950 --> 00:09:05,509 Vale, entonces, eliminar por libro. 225 00:09:05,990 --> 00:09:07,769 Pues ya está, ya sabemos cómo borrar. 226 00:09:08,090 --> 00:09:09,850 Me tengo que colocar en el padre, ¿cómo? 227 00:09:09,850 --> 00:09:11,769 pues ya es un tema de programación, ya cada uno 228 00:09:11,769 --> 00:09:13,470 programa como le guste 229 00:09:13,470 --> 00:09:15,889 me coloco en el padre y el padre elimina al hijo 230 00:09:15,889 --> 00:09:17,929 y recordad 231 00:09:17,929 --> 00:09:19,409 eso que nos hace tanto daño 232 00:09:19,409 --> 00:09:21,769 recorrer cosas para 233 00:09:21,769 --> 00:09:23,269 adentro decidir que borramos 234 00:09:23,269 --> 00:09:25,649 eso pase en el contexto en el que pase 235 00:09:25,649 --> 00:09:27,129 lo evitemos, evitémoslo 236 00:09:27,129 --> 00:09:29,870 porque a veces puede ir 237 00:09:29,870 --> 00:09:31,629 y a veces no, tú haces una prueba 238 00:09:31,629 --> 00:09:33,590 te vas, le das al jefe, hace la siguiente prueba 239 00:09:33,590 --> 00:09:35,350 no le va, y ya hemos liado 240 00:09:35,350 --> 00:09:37,710 vale, entonces lo borramos 241 00:09:37,710 --> 00:09:39,029 vamos a 242 00:09:39,029 --> 00:09:39,690 aquí 243 00:09:39,690 --> 00:09:47,679 eliminamos 244 00:09:47,679 --> 00:09:49,379 id 2 245 00:09:49,379 --> 00:09:50,139 por ejemplo 246 00:09:50,139 --> 00:09:54,840 y ahora 247 00:09:54,840 --> 00:10:02,779 gestión punto 248 00:10:02,779 --> 00:10:05,519 esto se llamaba 249 00:10:05,519 --> 00:10:07,360 eliminar libro 250 00:10:07,360 --> 00:10:07,980 2 251 00:10:07,980 --> 00:10:11,379 eliminar libro por id 252 00:10:11,379 --> 00:10:12,720 esto era en string 253 00:10:12,720 --> 00:10:15,620 lo meto en inciso para que me muestre 254 00:10:15,620 --> 00:10:16,399 es true o false 255 00:10:16,399 --> 00:10:19,460 en este caso me mostrará true porque el 2 existe 256 00:10:19,460 --> 00:10:21,419 si le pasáramos el 3 me diría 257 00:10:21,419 --> 00:10:23,480 falso, lógicamente, porque no ha borrado 258 00:10:23,480 --> 00:10:23,840 nada 259 00:10:23,840 --> 00:10:27,440 vale, pero, a ver 260 00:10:27,440 --> 00:10:28,659 voy a ejecutarlo 261 00:10:28,659 --> 00:10:31,379 para ver si no me sale ningún error y está 262 00:10:31,379 --> 00:10:33,500 todo bien, pero en el xml no se va a enterar 263 00:10:33,500 --> 00:10:35,259 lo va a haber borrado en el doc, solo 264 00:10:35,259 --> 00:10:37,220 nos va a faltar guardar el xml 265 00:10:37,220 --> 00:10:39,399 entonces, vamos a hacer la 266 00:10:39,399 --> 00:10:40,120 primera prueba 267 00:10:40,120 --> 00:10:42,639 solo para ver si 268 00:10:42,639 --> 00:10:48,070 parece que ha eliminado, pero 269 00:10:48,070 --> 00:10:50,190 mi este fichero no se ha enterado de nada 270 00:10:50,190 --> 00:10:52,169 mi id2, que era este 271 00:10:52,169 --> 00:10:53,509 aquí sigue 272 00:10:53,509 --> 00:10:56,009 Claro, porque esta modificación 273 00:10:56,009 --> 00:11:00,039 Esta modificación de aquí 274 00:11:00,039 --> 00:11:01,580 Se ha hecho 275 00:11:01,580 --> 00:11:02,799 Solo en el doc 276 00:11:02,799 --> 00:11:05,240 Ahora tenemos que pasar el doc 277 00:11:05,240 --> 00:11:07,720 Al fichero, bueno pues no pasa nada 278 00:11:07,720 --> 00:11:09,519 Vamos a hacernos un método 279 00:11:09,519 --> 00:11:12,539 Actualizar 280 00:11:12,539 --> 00:11:14,840 Fichero 281 00:11:14,840 --> 00:11:17,639 Con esas sentencias de código 282 00:11:17,639 --> 00:11:19,220 Que al final vienen a ser copia y pega 283 00:11:19,220 --> 00:11:21,639 Que pasan un doc 284 00:11:21,639 --> 00:11:22,299 Al fichero 285 00:11:22,299 --> 00:11:24,980 Como la variable doc y el fichero 286 00:11:24,980 --> 00:11:27,340 Son variables globales 287 00:11:27,340 --> 00:11:28,440 De aquí arriba y de aquí clase 288 00:11:28,440 --> 00:11:29,500 No se las tengo que pasar 289 00:11:29,500 --> 00:11:32,980 Pues venga, actualizar fichero 290 00:11:32,980 --> 00:11:35,500 Vamos a 291 00:11:35,500 --> 00:11:37,980 Crear este método 292 00:11:37,980 --> 00:11:40,860 Actualizar fichero 293 00:11:40,860 --> 00:11:43,600 Vamos a ver 294 00:11:43,600 --> 00:11:46,500 No, esto 295 00:11:46,500 --> 00:11:51,259 Sí, estos son transformers 296 00:11:51,259 --> 00:11:57,960 No creo que me acuerde 297 00:11:57,960 --> 00:11:59,139 Miraré la chuleta 298 00:11:59,139 --> 00:12:00,820 Pero voy a intentarlo 299 00:12:00,820 --> 00:12:07,289 .newinstance 300 00:12:07,289 --> 00:12:08,690 Vale 301 00:12:08,690 --> 00:12:10,730 Esta es la fábrica de Transformer 302 00:12:10,730 --> 00:12:13,049 Que transforman 303 00:12:13,049 --> 00:12:14,470 Como su propio nombre dice 304 00:12:14,470 --> 00:12:16,110 Que está 305 00:12:16,110 --> 00:12:18,710 Si veis los sim porque os importe 306 00:12:18,710 --> 00:12:22,110 Está pues aquí en Java 307 00:12:22,110 --> 00:12:23,970 XMM patatín 308 00:12:23,970 --> 00:12:26,330 Transformer factory 309 00:12:26,330 --> 00:12:28,309 Esta es la factoría de transformers 310 00:12:28,309 --> 00:12:31,370 La factoría de transformer 311 00:12:31,370 --> 00:12:32,470 Me va a permitir 312 00:12:32,470 --> 00:12:34,389 Generar ya un transformer 313 00:12:34,389 --> 00:12:37,070 Para hacer la transformación 314 00:12:37,070 --> 00:12:38,309 De doc al fichero 315 00:12:38,309 --> 00:12:40,429 Transformer generator 316 00:12:40,429 --> 00:12:43,029 El trece punto 317 00:12:43,029 --> 00:12:45,149 Con 318 00:12:45,149 --> 00:12:46,549 New transformer 319 00:12:46,549 --> 00:12:47,330 Imagino 320 00:12:47,330 --> 00:12:51,990 New transformer 321 00:12:51,990 --> 00:12:53,309 Vale 322 00:12:53,309 --> 00:13:02,279 Y ahora 323 00:13:02,279 --> 00:13:04,639 ahora este tendrá una excepción 324 00:13:04,639 --> 00:13:05,539 lógicamente 325 00:13:05,539 --> 00:13:15,950 porque son dos objetos distintos 326 00:13:15,950 --> 00:13:17,990 este es el que va a hacer la transformación 327 00:13:17,990 --> 00:13:20,289 y esta es la factoría para generar este 328 00:13:20,289 --> 00:13:24,750 claro, es porque sigue el patrón factoría 329 00:13:24,750 --> 00:13:26,450 esto, y ahora 330 00:13:26,450 --> 00:13:31,029 vale, entonces 331 00:13:31,029 --> 00:13:32,950 para que el fichero de salida 332 00:13:32,950 --> 00:13:35,110 nos quede indentado y nos quede bonito 333 00:13:35,110 --> 00:13:37,450 Hay que fijar algunas propiedades básicas 334 00:13:37,450 --> 00:13:38,730 Entonces 335 00:13:38,730 --> 00:13:40,789 En particular hay que fijar 336 00:13:40,789 --> 00:13:43,029 Una propiedad que es la 337 00:13:43,029 --> 00:13:45,110 Los índices 338 00:13:45,110 --> 00:13:46,250 Esta ya si que no me acuerdo 339 00:13:46,250 --> 00:13:49,169 Esta propiedad como se llamaba 340 00:13:49,169 --> 00:13:50,429 ¿Y si no te acuerdas no pasó? 341 00:13:51,330 --> 00:13:51,529 ¿Eh? 342 00:13:54,139 --> 00:13:55,580 No, si porque 343 00:13:55,580 --> 00:14:00,840 Luego te lo encuentras en la cama 344 00:14:00,840 --> 00:14:01,700 Entonces si pasó 345 00:14:01,700 --> 00:14:02,679 A ver 346 00:14:02,679 --> 00:14:06,820 Vamos a ver 347 00:14:06,820 --> 00:14:08,539 Esta es la propiedad 348 00:14:08,539 --> 00:14:19,980 vale 349 00:14:19,980 --> 00:14:22,139 entonces esta fija 350 00:14:22,139 --> 00:14:24,539 al transformador este 351 00:14:24,539 --> 00:14:26,259 al transformer le puedes fijar 352 00:14:26,259 --> 00:14:28,639 formas de funcionar 353 00:14:28,639 --> 00:14:30,740 la única que nos interesa 354 00:14:30,740 --> 00:14:32,980 es que te indente 355 00:14:32,980 --> 00:14:34,120 el fichero, que haga 356 00:14:34,120 --> 00:14:36,539 indexados, que indexe, perdón 357 00:14:36,539 --> 00:14:37,100 te indente 358 00:14:37,100 --> 00:14:39,679 es que tenías otra 359 00:14:39,679 --> 00:14:41,720 pasamos 360 00:14:41,720 --> 00:14:43,940 y ahora ya vamos a transformar 361 00:14:43,940 --> 00:14:45,659 tr.transform 362 00:14:45,659 --> 00:14:47,179 y ahora 363 00:14:47,179 --> 00:14:49,100 Transformamos 364 00:14:49,100 --> 00:14:51,059 Nuestro documento 365 00:14:51,059 --> 00:14:53,200 A nuestro 366 00:14:53,200 --> 00:14:53,960 Fichero 367 00:14:53,960 --> 00:14:56,759 Que se llamaba 368 00:14:56,759 --> 00:14:59,379 Fichero 369 00:14:59,379 --> 00:15:00,340 Vale 370 00:15:00,340 --> 00:15:01,799 Lo que pasa es que 371 00:15:01,799 --> 00:15:04,980 Aquí no, creo que no hay que 372 00:15:04,980 --> 00:15:06,940 Si, no, aquí no va en file 373 00:15:06,940 --> 00:15:08,399 Aquí va en input string 374 00:15:08,399 --> 00:15:09,220 Creo 375 00:15:09,220 --> 00:15:13,299 Result va en input string 376 00:15:13,299 --> 00:15:15,139 Estoy casi segura 377 00:15:15,139 --> 00:15:17,100 Pero vamos a comprobarlo aquí 378 00:15:17,100 --> 00:15:19,799 Ah, va en una instancia de result 379 00:15:19,799 --> 00:15:21,440 Vale, entonces construimos primero 380 00:15:21,440 --> 00:15:23,919 Aquí, vale, todo esto 381 00:15:23,919 --> 00:15:26,120 Que me quería yo saltar pasos 382 00:15:26,120 --> 00:15:27,899 Vale, me quería yo 383 00:15:27,899 --> 00:15:29,000 Saltar pasos, no 384 00:15:29,000 --> 00:15:32,299 Así 385 00:15:32,299 --> 00:15:37,519 Sí, sí, tranquilos 386 00:15:37,519 --> 00:15:39,440 Que lo dejo, y ya está, esto luego es copiar 387 00:15:39,440 --> 00:15:40,500 Y pegar, copiar y pegar 388 00:15:40,500 --> 00:15:42,179 Y aquí voy a añadir la 389 00:15:42,179 --> 00:15:44,860 Trans, tr, esto es tr 390 00:15:44,860 --> 00:15:47,419 Ahora voy, ahora voy, ahora voy, espera que lo deje bonito 391 00:15:47,419 --> 00:15:48,320 Vale 392 00:15:48,320 --> 00:15:51,820 Vale, pasos a hacer 393 00:15:51,820 --> 00:15:53,600 crear el transformer 394 00:15:53,600 --> 00:15:55,179 que se hace con la factoría 395 00:15:55,179 --> 00:15:57,919 al transformer le diremos que 396 00:15:57,919 --> 00:15:59,899 funcione indexando para que 397 00:15:59,899 --> 00:16:01,860 el xml quede bonito, no quede todo así 398 00:16:01,860 --> 00:16:02,539 tan feo 399 00:16:02,539 --> 00:16:05,679 y ahora ya vamos a llamar al 400 00:16:05,679 --> 00:16:07,720 transform para que transforme 401 00:16:07,720 --> 00:16:09,759 mi doc en mi 402 00:16:09,759 --> 00:16:11,899 fichero, pero el doc y el fichero 403 00:16:11,899 --> 00:16:12,820 no se pasan tal cual 404 00:16:12,820 --> 00:16:15,539 el doc se tiene que pasar en 405 00:16:15,539 --> 00:16:17,059 formato doc source 406 00:16:17,059 --> 00:16:20,080 y el 407 00:16:20,080 --> 00:16:21,659 fichero se tiene que pasar en 408 00:16:21,659 --> 00:16:23,500 formato stream result, por eso 409 00:16:23,500 --> 00:16:24,419 lo instanciamos así 410 00:16:24,419 --> 00:16:27,419 y entonces, a ver, porque es 411 00:16:27,419 --> 00:16:28,500 como 412 00:16:28,500 --> 00:16:31,440 y este se llama, como se llamaba 413 00:16:31,440 --> 00:16:33,659 nuestro fichero, fichero era 414 00:16:33,659 --> 00:16:34,340 sí 415 00:16:34,340 --> 00:16:37,740 y esto ahora ya sí que me puede dar otra excepción 416 00:16:37,740 --> 00:16:37,899 ¿no? 417 00:16:37,899 --> 00:16:39,580 ¿y lo de gestor biblioteca DOM? 418 00:16:42,730 --> 00:16:44,350 ¿qué es gestor biblioteca DOM? 419 00:16:45,470 --> 00:16:46,409 ¿de dónde sacaste la? 420 00:16:48,049 --> 00:16:49,529 ¿de dónde lo saqué? de mi chuleta 421 00:16:49,529 --> 00:16:51,769 y ahora esto se convierte en tu chuleta 422 00:16:51,769 --> 00:16:55,110 ahora esto se convertiría en la tuya 423 00:16:55,110 --> 00:16:57,169 de la que tú copiarás y pegarás cuando 424 00:16:57,169 --> 00:16:59,049 necesites hacer esto, a ver, que si te quieres 425 00:16:59,049 --> 00:17:01,190 aprender esto de memoria, vale, yo he llegado hasta aquí 426 00:17:01,190 --> 00:17:03,370 pero tú tienes más memoria 427 00:17:03,370 --> 00:17:03,950 que yo 428 00:17:03,950 --> 00:17:12,849 Juan José Ballesta 429 00:17:12,849 --> 00:17:14,470 ah, perdón 430 00:17:14,470 --> 00:17:16,970 ese es otro 431 00:17:16,970 --> 00:17:29,349 Es que te pareces mucho 432 00:17:29,349 --> 00:17:31,789 Que sí 433 00:17:31,789 --> 00:17:34,089 Que esta propiedad se ponga yes 434 00:17:34,089 --> 00:17:36,069 O sea, esta es la propiedad 435 00:17:36,069 --> 00:17:37,289 Indexar 436 00:17:37,289 --> 00:17:39,130 La puedes poner a yes o a no 437 00:17:39,130 --> 00:17:41,250 Si la pones a no, no te indexa 438 00:17:41,250 --> 00:17:43,470 Con lo cual te va a salir el pitcher XML muy feo 439 00:17:43,470 --> 00:17:46,730 Y como esta propiedad tiene otras 440 00:17:46,730 --> 00:17:47,869 Pero bueno, esta es la básica 441 00:17:47,869 --> 00:17:52,690 Claro, para que te aparezcan tabuladores en los nodos 442 00:17:52,690 --> 00:17:54,849 Que al XML le da igual 443 00:17:54,849 --> 00:17:56,950 Pero al que lo ve con los ojos 444 00:17:56,950 --> 00:17:57,829 Dime 445 00:17:57,829 --> 00:18:02,269 Sí, a ver 446 00:18:02,269 --> 00:18:04,809 El transformer 447 00:18:04,809 --> 00:18:06,490 Parte del doc 448 00:18:06,490 --> 00:18:07,589 Y se va al fichero 449 00:18:07,589 --> 00:18:09,089 Pero este método 450 00:18:09,089 --> 00:18:11,869 Lo necesita en otro formato 451 00:18:11,869 --> 00:18:14,069 No en formato doc 452 00:18:14,069 --> 00:18:15,549 Árbol doc ni en formato file 453 00:18:15,549 --> 00:18:17,430 hay que convertirlo a 454 00:18:17,430 --> 00:18:19,430 una fuente de DOM 455 00:18:19,430 --> 00:18:21,869 y este hay que convertirlo a un flujo 456 00:18:23,029 --> 00:18:23,589 a un stream 457 00:18:23,589 --> 00:18:26,109 pues para convertirlo a una fuente 458 00:18:26,109 --> 00:18:27,750 de DOM, pues lo conviertes así 459 00:18:27,750 --> 00:18:29,849 y para convertirlo a un flujo, lo conviertes así 460 00:18:29,849 --> 00:18:31,829 y eso es porque la librería DOM 461 00:18:31,829 --> 00:18:34,269 lo tiene así diseñado 462 00:18:34,269 --> 00:18:36,250 no es una decisión nuestra 463 00:18:36,250 --> 00:18:37,390 ¿vale? 464 00:18:38,009 --> 00:18:39,789 entonces tú entiendes más o menos 465 00:18:39,789 --> 00:18:41,809 de qué va y respetas sus reglas 466 00:18:41,809 --> 00:18:42,809 sus reglas honestas 467 00:18:42,809 --> 00:18:44,470 te lo dejas y luego ya 468 00:18:44,470 --> 00:18:47,170 Sí, sí, sí, este es nuestro 469 00:18:47,170 --> 00:18:49,089 Algo en dos y este es nuestro fichero 470 00:18:49,089 --> 00:18:51,690 Lo que pasa es que no se los podemos pasar así directamente 471 00:18:51,690 --> 00:18:53,950 Se los pasamos transformados 472 00:18:53,950 --> 00:18:57,930 Ya, sí 473 00:18:57,930 --> 00:19:00,230 Vale 474 00:19:00,230 --> 00:19:05,630 Vale, ala 475 00:19:05,630 --> 00:19:07,089 No le digas eso 476 00:19:07,089 --> 00:19:09,930 Hombre, qué feo eso 477 00:19:09,930 --> 00:19:14,150 Ha sido solo para contestarle a él 478 00:19:14,470 --> 00:19:16,549 vale, entonces ahora ya nos vamos 479 00:19:16,549 --> 00:19:18,230 a nuestro main, vamos a ver ahora ya 480 00:19:18,230 --> 00:19:19,890 si ahora ya sí que nos elimina 481 00:19:19,890 --> 00:19:22,450 el 2, a ver si ahora ya lo vemos 482 00:19:22,450 --> 00:19:30,589 en el fichero, vamos a ver 483 00:19:30,589 --> 00:19:32,630 vale 484 00:19:32,630 --> 00:19:34,710 el id2 485 00:19:34,710 --> 00:19:35,690 lo he eliminado 486 00:19:35,690 --> 00:19:40,009 id2 lo he eliminado, efectivamente 487 00:19:40,009 --> 00:19:41,990 y lo que pasa es que nos mete 488 00:19:41,990 --> 00:19:43,109 un montón de espacios 489 00:19:43,109 --> 00:19:46,250 y yo creo que esto se quita, vamos a probarlo 490 00:19:46,250 --> 00:19:48,089 haciendo antes 491 00:19:48,089 --> 00:19:50,430 un método normalize 492 00:19:50,430 --> 00:19:54,710 Te mete espacios 493 00:19:54,710 --> 00:19:56,410 Queda muy feo a la vista 494 00:19:56,410 --> 00:19:58,549 Pero bueno, a cualquier parser 495 00:19:58,549 --> 00:20:00,990 Se la refanfinfla que tenga espacios o no 496 00:20:00,990 --> 00:20:03,230 A cualquier parser de cualquier aplicación 497 00:20:03,230 --> 00:20:04,549 Que tenga espacios o no le da lo mismo 498 00:20:04,549 --> 00:20:05,750 Pero a la vista queda muy feo 499 00:20:05,750 --> 00:20:08,450 Creo, creo, vamos a probarlo 500 00:20:08,450 --> 00:20:09,529 Que si tú al doc 501 00:20:09,529 --> 00:20:11,970 Antes de pasárselo 502 00:20:11,970 --> 00:20:15,329 ¿Dónde estamos aquí en actualizar? 503 00:20:15,450 --> 00:20:16,450 ¿Dónde estaba actualizar? 504 00:20:16,910 --> 00:20:17,529 Jolines 505 00:20:17,529 --> 00:20:19,670 Actualizar, ¿dónde está? 506 00:20:20,430 --> 00:20:22,410 vale 507 00:20:22,410 --> 00:20:25,690 creo que aquí si al doc 508 00:20:25,690 --> 00:20:29,509 le hacemos esto 509 00:20:29,509 --> 00:20:33,369 creo que 510 00:20:33,369 --> 00:20:35,789 la normalización te elimina 511 00:20:35,789 --> 00:20:37,390 te aglutina 512 00:20:37,390 --> 00:20:39,289 espacios, creo que te hace 513 00:20:39,289 --> 00:20:41,269 todas esas cosas y entonces puede 514 00:20:41,269 --> 00:20:43,089 que ya no te lo genere, pero no estoy segura 515 00:20:43,089 --> 00:20:43,950 vamos a probarlo 516 00:20:43,950 --> 00:20:48,470 lo que pasa es que voy a 517 00:20:48,470 --> 00:20:49,829 volver a ponerle 518 00:20:49,829 --> 00:20:51,789 voy a eliminar el 1 519 00:20:51,789 --> 00:20:54,569 Espera, voy a copiar el origen 520 00:20:54,569 --> 00:20:56,029 Voy a volver a copiar el otro 521 00:20:56,029 --> 00:20:59,170 Este 522 00:20:59,170 --> 00:21:08,440 Ah, no, este es este 523 00:21:08,440 --> 00:21:09,180 Este de aquí 524 00:21:09,180 --> 00:21:12,079 Voy a recuperar el original 525 00:21:12,079 --> 00:21:19,250 Pero habiéndolo modificado 526 00:21:19,250 --> 00:21:21,369 Desde aplicación el control Z funciona 527 00:21:21,369 --> 00:21:24,950 Vale, vale 528 00:21:24,950 --> 00:21:26,130 Pues no lo había probado nunca 529 00:21:26,130 --> 00:21:28,630 Vale, bueno, lo tengo aquí otra vez 530 00:21:28,630 --> 00:21:30,589 Vale, vamos a ver 531 00:21:30,589 --> 00:21:32,150 Ahora con el normalize 532 00:21:32,150 --> 00:21:34,890 Si me lo hiciera, si me lo dejara más bonito 533 00:21:34,890 --> 00:21:44,059 Pues no, no vale para nada 534 00:21:44,059 --> 00:21:46,440 A ver, vamos a 535 00:21:46,440 --> 00:21:47,880 Document 536 00:21:47,880 --> 00:21:53,059 A ver, insertándole 537 00:21:53,059 --> 00:21:53,619 Esto 538 00:21:53,619 --> 00:21:58,700 A ver, insertándolo así 539 00:21:58,700 --> 00:22:00,299 Entonces 540 00:22:00,299 --> 00:22:02,119 Decís que si yo hago aquí un control Z 541 00:22:02,119 --> 00:22:04,319 Uh, que cosa tan chula 542 00:22:04,319 --> 00:22:05,559 Vale 543 00:22:05,559 --> 00:22:08,420 Vale 544 00:22:08,420 --> 00:22:09,660 Volvemos a 545 00:22:09,660 --> 00:22:11,980 True 546 00:22:11,980 --> 00:22:14,740 Pues no sé 547 00:22:14,740 --> 00:22:16,380 Esto es tarea vuestra 548 00:22:16,380 --> 00:22:18,900 ¿Qué se puede hacer para que 549 00:22:18,900 --> 00:22:20,559 Se le puede fijar 550 00:22:20,559 --> 00:22:22,640 Alguna propiedad al transform 551 00:22:22,640 --> 00:22:23,400 Seguramente 552 00:22:23,400 --> 00:22:25,440 El transformer este 553 00:22:25,440 --> 00:22:27,640 Le podamos fijar más propiedades 554 00:22:27,640 --> 00:22:29,980 Sí, pero esa 555 00:22:29,980 --> 00:22:32,059 Es para la codificación UTF-8 556 00:22:32,059 --> 00:22:33,839 Pero es que ya lo tengo aquí en UTF-8 por defecto 557 00:22:33,839 --> 00:22:34,980 Entonces creo que no vale para nada 558 00:22:34,980 --> 00:22:36,940 Seguramente hay otra propiedad 559 00:22:36,940 --> 00:22:39,640 Para que te quite esta 560 00:22:39,640 --> 00:22:41,440 Morrallita 561 00:22:41,440 --> 00:22:43,220 Pero es que no sé cuál es 562 00:22:43,220 --> 00:22:45,319 Ni tengo internet para preguntárselo a nadie 563 00:22:45,319 --> 00:22:47,940 Así que os queda como tarea 564 00:22:47,940 --> 00:22:48,299 ¿Eh? 565 00:22:49,940 --> 00:22:51,680 No lo sé 566 00:22:51,680 --> 00:22:52,440 Porque la wifi 567 00:22:52,440 --> 00:22:55,200 Hoy no funciona la wifi 568 00:23:02,130 --> 00:23:12,390 Qué ojo 569 00:23:12,390 --> 00:23:14,650 Pero qué más te da 570 00:23:14,650 --> 00:23:17,109 Mi contraseña, si tú tienes la tuya de Duca Madrid 571 00:23:17,109 --> 00:23:17,950 Que vale para lo mismo 572 00:23:17,950 --> 00:23:19,890 Claro 573 00:23:19,890 --> 00:23:22,809 Ah, pues mirad 574 00:23:22,809 --> 00:23:23,609 Sí que 575 00:23:23,609 --> 00:23:25,950 Ya sí que tengo wifi 576 00:23:25,950 --> 00:23:27,130 A ver 577 00:23:27,130 --> 00:23:29,509 Sí 578 00:23:29,509 --> 00:23:32,809 Vamos a ver si se entera 579 00:23:32,809 --> 00:23:33,430 Cuando 580 00:23:33,430 --> 00:23:35,390 Se lo preguntamos una vez 581 00:23:35,390 --> 00:23:37,329 Y sí 582 00:23:37,329 --> 00:23:55,470 Uy, cuando hago el transform de doc a fichero transformer de apidon, 583 00:23:55,470 --> 00:23:59,589 Me crea el fichero 584 00:23:59,589 --> 00:24:02,390 Con un montón 585 00:24:02,390 --> 00:24:07,470 De saltos de línea feos 586 00:24:07,470 --> 00:24:21,900 Para que no lo haga 587 00:24:21,900 --> 00:24:25,279 Vamos a ver si lo sabe 588 00:24:25,279 --> 00:24:31,160 No le he dicho ni quejaba ni que nada 589 00:24:31,160 --> 00:24:32,140 Ah, vale, ya lo sabe 590 00:24:32,140 --> 00:24:33,640 Yo la dejaba 591 00:24:33,640 --> 00:24:34,980 Vale 592 00:24:34,980 --> 00:24:43,440 A ver, yo sí quiero saltos de línea 593 00:24:43,440 --> 00:24:45,720 Ah, extra, vale, no quiero los extra 594 00:24:45,720 --> 00:24:46,579 Vale 595 00:24:46,579 --> 00:24:49,599 Desactivar indentación 596 00:24:49,599 --> 00:24:51,900 Vale, la desactivamos 597 00:24:51,900 --> 00:24:53,400 Pero, ah 598 00:24:53,400 --> 00:24:55,180 Pero si yo la desactivo me sale todo seguido 599 00:24:55,180 --> 00:24:57,839 Y una 600 00:24:57,839 --> 00:25:02,660 Vale, esto ya lo hemos hecho 601 00:25:02,660 --> 00:25:05,420 Y no hemos insertado text nodes 602 00:25:05,420 --> 00:25:07,240 A ver 603 00:25:07,240 --> 00:25:16,529 Vale, a ver 604 00:25:16,529 --> 00:25:18,710 Si le ponemos que no indente, todo es una sola línea 605 00:25:18,710 --> 00:25:19,470 Tampoco lo queremos 606 00:25:19,470 --> 00:25:25,970 Bueno, no, no se ha resuelto nada 607 00:25:25,970 --> 00:25:28,430 Eh, alguna 608 00:25:28,430 --> 00:25:30,670 Si quito la indentación 609 00:25:30,670 --> 00:25:31,630 Pues es que sea una línea 610 00:25:31,630 --> 00:25:32,730 Y no lo quiero en una sola línea 611 00:25:32,730 --> 00:25:34,970 Bueno, no nos importa 612 00:25:34,970 --> 00:25:38,150 Y al que le importe, que lo busque 613 00:25:38,150 --> 00:25:40,490 Y si lo averigua, pues mira, esa curiosidad que tenemos 614 00:25:40,490 --> 00:25:41,769 Pero a ver 615 00:25:41,769 --> 00:25:43,130 No nos quita el sueño 616 00:25:43,130 --> 00:25:44,349 Vale 617 00:25:44,349 --> 00:25:46,670 Siguiente método 618 00:25:46,670 --> 00:25:49,170 Vamos a devolverlo al que estaba 619 00:25:49,170 --> 00:25:50,910 Que será añadir 620 00:25:50,910 --> 00:25:52,529 Y ya más o menos tenemos completo 621 00:25:52,529 --> 00:25:54,329 Todo lo que nos puede interesar hacer 622 00:25:54,329 --> 00:26:00,170 Libros prestados a 623 00:26:00,170 --> 00:26:02,230 Eliminar libros 624 00:26:02,230 --> 00:26:07,410 Perdona, eso lo podéis hacer vosotros 625 00:26:07,410 --> 00:26:12,930 Ah, el guardar era para actualizar 626 00:26:12,930 --> 00:26:15,130 Vale, que lo tenía en blanco para eso 627 00:26:15,130 --> 00:26:15,789 Pues fuera 628 00:26:15,789 --> 00:26:16,809 Vale 629 00:26:16,809 --> 00:26:17,789 Y 630 00:26:17,789 --> 00:26:22,890 Eliminar préstamos de un lector 631 00:26:22,890 --> 00:26:24,730 Lo hacéis vosotros 632 00:26:24,730 --> 00:26:26,990 Vale, genial 633 00:26:26,990 --> 00:26:28,970 ¿Lo leemos después de arrepiado? 634 00:26:29,789 --> 00:26:31,329 No, porque es un I-59 635 00:26:31,329 --> 00:26:33,150 Vamos a agregar un libro 636 00:26:33,150 --> 00:26:34,289 Para ver cómo se agrega 637 00:26:34,289 --> 00:26:36,750 Y lo demás podríais hacerlo también ya vosotros 638 00:26:36,750 --> 00:26:39,230 Eso con alguna otra aplicación 639 00:26:39,230 --> 00:26:40,750 Que os dé para practicar 640 00:26:40,750 --> 00:26:42,130 Vale 641 00:26:42,130 --> 00:26:44,630 ¿Cómo se agrega un libro? Pues igual 642 00:26:44,630 --> 00:26:46,829 El que quita la vida la da 643 00:26:46,829 --> 00:26:49,009 Al nodo padre 644 00:26:49,009 --> 00:26:50,789 O sea, creamos un nodo 645 00:26:50,789 --> 00:26:52,589 Y al padre le decimos, oye, toma 646 00:26:52,589 --> 00:26:54,289 Acógelo en tu seno 647 00:26:54,289 --> 00:26:56,569 Y ya está, el padre lo acoge y se acabó 648 00:26:56,569 --> 00:26:57,769 ¿Vale? 649 00:26:59,369 --> 00:26:59,769 ¿Perdón? 650 00:27:02,970 --> 00:27:04,769 Vamos a agregar un libro 651 00:27:04,769 --> 00:27:06,509 Pues entonces hay que crear el nodo libro 652 00:27:06,509 --> 00:27:08,549 ¿Vale? Vamos a crear el nodo libro 653 00:27:08,549 --> 00:27:09,009 Entonces 654 00:27:09,009 --> 00:27:13,069 ¿Cómo se crea un nuevo nodo? 655 00:27:14,069 --> 00:27:15,470 Pues a través del document 656 00:27:15,470 --> 00:27:17,650 Aquí hay un método que es 657 00:27:17,650 --> 00:27:19,250 Create 658 00:27:19,250 --> 00:27:22,869 No, no es create 659 00:27:22,869 --> 00:27:27,950 Create, claro que es create 660 00:27:27,950 --> 00:27:30,009 Porque me vacila 661 00:27:30,009 --> 00:27:30,829 Vale 662 00:27:30,829 --> 00:27:32,990 Vamos a crear 663 00:27:32,990 --> 00:27:35,349 Un nuevo nodo libro 664 00:27:35,349 --> 00:27:37,069 Vale 665 00:27:37,069 --> 00:27:38,450 Un nuevo nodo libro 666 00:27:38,450 --> 00:27:42,269 Este nodo libro 667 00:27:42,269 --> 00:27:44,410 ¿A quién irá? 668 00:27:46,130 --> 00:27:48,309 Irá al nodo raíz 669 00:27:48,309 --> 00:27:52,029 Entonces tenemos que sacarnos el nodo raíz 670 00:27:52,029 --> 00:27:54,309 Para pegarle el nodo libro 671 00:27:54,309 --> 00:27:56,450 Pero bueno, antes de pegarse al nodo raíz 672 00:27:56,450 --> 00:27:58,769 Vamos a meterle sus hijos 673 00:27:58,769 --> 00:28:02,589 Bueno, pues entonces el libro ya lo tenemos 674 00:28:02,589 --> 00:28:04,329 Pero también queremos 675 00:28:04,329 --> 00:28:05,970 Crear un elemento 676 00:28:05,970 --> 00:28:08,369 Que sea el título 677 00:28:08,369 --> 00:28:13,420 Vale 678 00:28:13,420 --> 00:28:17,490 Y a título, ¿qué le queremos pegar? 679 00:28:17,650 --> 00:28:19,869 Le queremos pegar un nodo texto 680 00:28:19,869 --> 00:28:21,829 Con este nodo de aquí 681 00:28:21,829 --> 00:28:23,750 Pues venga, vamos a crear 682 00:28:23,750 --> 00:28:28,579 Se podría todo 683 00:28:28,579 --> 00:28:31,180 Un nodo texto, efectivamente 684 00:28:31,180 --> 00:28:33,220 Cuyo texto 685 00:28:33,220 --> 00:28:34,460 Sea título 686 00:28:34,460 --> 00:28:38,759 Sí 687 00:28:38,759 --> 00:28:40,900 Pero bueno, esto se va haciendo en una línea 688 00:28:40,900 --> 00:28:42,579 Y ahora ya 689 00:28:42,579 --> 00:28:44,880 A este de aquí 690 00:28:44,880 --> 00:28:46,200 A ver, yo estoy siendo muy lista 691 00:28:46,200 --> 00:28:47,599 Pero no lo estoy guardando en ningún lado 692 00:28:47,599 --> 00:28:49,400 Este es el nodo libro 693 00:28:49,400 --> 00:28:51,720 Libro igual a este 694 00:28:51,720 --> 00:28:53,420 Uy, que digo yo libro, perdón 695 00:28:53,420 --> 00:28:54,019 Element 696 00:28:54,019 --> 00:28:56,980 Element, ahora 697 00:28:56,980 --> 00:28:59,859 Aquí lo mismo 698 00:28:59,859 --> 00:29:01,079 Element 699 00:29:01,079 --> 00:29:02,920 Título 700 00:29:02,920 --> 00:29:06,859 Y aquí este será 701 00:29:06,859 --> 00:29:08,779 Ahora 702 00:29:08,779 --> 00:29:10,440 Yo por ahora lo estoy creando 703 00:29:10,440 --> 00:29:12,119 Eso 704 00:29:12,119 --> 00:29:15,259 Appenchild, habláis inglés casi igual que yo 705 00:29:15,259 --> 00:29:16,920 Appenchild 706 00:29:16,920 --> 00:29:17,640 Apencil 707 00:29:17,640 --> 00:29:20,740 Este texto 708 00:29:20,740 --> 00:29:25,180 Entonces 709 00:29:25,180 --> 00:29:28,140 Texto, título 710 00:29:28,140 --> 00:29:30,660 Lo estoy poniendo aparte para que 711 00:29:30,660 --> 00:29:31,539 Este 712 00:29:31,539 --> 00:29:34,819 Import text 713 00:29:34,819 --> 00:29:35,420 Vale 714 00:29:35,420 --> 00:29:40,450 Entonces text es un nodo 715 00:29:40,450 --> 00:29:40,750 También 716 00:29:40,750 --> 00:29:43,750 Pero es un nodo de tipo texto 717 00:29:43,750 --> 00:29:45,789 También está en la jerarquía de element y de todo 718 00:29:45,789 --> 00:29:48,509 Vamos a pegarle ya al título 719 00:29:48,509 --> 00:29:50,789 Vamos a pegarle 720 00:29:50,789 --> 00:29:52,150 Este 721 00:29:52,150 --> 00:29:54,789 El título ya lo tenemos 722 00:29:54,789 --> 00:29:56,410 Y ahora ya nosotros lo hacemos en la misma línea 723 00:29:56,410 --> 00:29:57,730 Para que sea más 724 00:29:57,730 --> 00:29:59,990 Vamos a crear 725 00:29:59,990 --> 00:30:00,750 El 726 00:30:00,750 --> 00:30:05,450 Estítulo, autor, género y año 727 00:30:05,450 --> 00:30:06,329 Uff, que pesado 728 00:30:06,329 --> 00:30:11,210 Pues venga 729 00:30:11,210 --> 00:30:13,569 Element 730 00:30:13,569 --> 00:30:16,190 Autor 731 00:30:16,190 --> 00:30:17,509 Igualador 732 00:30:17,509 --> 00:30:19,150 Punto, crear 733 00:30:19,150 --> 00:30:22,529 Element 734 00:30:22,529 --> 00:30:23,869 De autor 735 00:30:23,869 --> 00:30:27,130 Y a este, ya que estamos 736 00:30:27,130 --> 00:30:29,170 Ah, no, no lo puedo hacer una penchild 737 00:30:29,170 --> 00:30:30,450 Porque lo tengo que hacer aparte 738 00:30:30,450 --> 00:30:32,210 ¿Por qué? ¿Por qué no puedes? 739 00:30:33,130 --> 00:30:34,849 Porque a penchild no me devuelve 740 00:30:34,849 --> 00:30:36,210 El propio honor de elemento 741 00:30:36,210 --> 00:30:38,690 Bueno, igual está pensado para que te lo devuelva 742 00:30:38,690 --> 00:30:40,049 Si está pensado para que te lo devuelva 743 00:30:40,049 --> 00:30:41,730 Ah, sí, sí, sí 744 00:30:41,730 --> 00:30:43,490 Ay, pues te ahorra trabajo, fenomenal 745 00:30:43,490 --> 00:30:45,450 Vale, y a este 746 00:30:45,450 --> 00:30:46,509 Le fijamos 747 00:30:46,509 --> 00:30:50,150 append child 748 00:30:50,150 --> 00:30:52,289 doc, ahora lo, espera, lo ponemos aquí abajo 749 00:30:52,289 --> 00:30:58,779 doc.create 750 00:30:58,779 --> 00:31:00,779 text 751 00:31:00,779 --> 00:31:02,420 node, claro, create 752 00:31:02,420 --> 00:31:04,440 text node, autor 753 00:31:04,440 --> 00:31:06,619 vale, y este 754 00:31:06,619 --> 00:31:08,660 te lo devuelve en node, pero 755 00:31:08,660 --> 00:31:10,160 son node tu element 756 00:31:10,160 --> 00:31:12,099 podré hacer un 757 00:31:12,099 --> 00:31:14,240 bueno 758 00:31:14,240 --> 00:31:16,119 estoy arriesgando mucho con tanto 759 00:31:16,119 --> 00:31:20,880 sí, a ver, lo que, aquí 760 00:31:20,880 --> 00:31:22,460 He creado el nodo texto 761 00:31:22,460 --> 00:31:25,480 Se lo he puesto como hijo 762 00:31:25,480 --> 00:31:27,539 A este nodo que acabo de crear 763 00:31:27,539 --> 00:31:29,000 ¿Verdad? 764 00:31:29,299 --> 00:31:30,160 O sea, el nodo texto 765 00:31:30,160 --> 00:31:32,019 Y ahora, este método 766 00:31:32,019 --> 00:31:35,460 Tiene la particularidad que además de añadir 767 00:31:35,460 --> 00:31:37,619 Un nodo hijo a un nodo 768 00:31:37,619 --> 00:31:39,420 Te devuelve ese propio nodo 769 00:31:39,420 --> 00:31:40,220 A orden retorno 770 00:31:40,220 --> 00:31:42,759 Entonces, gracias a eso, pues lo puedo guardar aquí en autor 771 00:31:42,759 --> 00:31:44,319 Que es lo que yo quiero en última instancia 772 00:31:44,319 --> 00:31:46,180 Tener esa referencia del nodo 773 00:31:46,180 --> 00:31:47,460 Vale, aunque 774 00:31:47,460 --> 00:31:50,920 el propio nodo modificado 775 00:31:50,920 --> 00:31:51,940 con el append child 776 00:31:51,940 --> 00:31:56,900 no, el nodo text node te lo devuelve este 777 00:31:56,900 --> 00:31:58,539 y se lo pasas a append child 778 00:31:58,539 --> 00:31:59,440 y append child 779 00:31:59,440 --> 00:32:02,980 append child lo fija al hijo 780 00:32:02,980 --> 00:32:04,900 y te lo devuelve 781 00:32:04,900 --> 00:32:06,259 como 782 00:32:06,259 --> 00:32:08,980 veis porque 783 00:32:08,980 --> 00:32:10,839 lo podemos ver aquí 784 00:32:10,839 --> 00:32:12,920 añade el 785 00:32:12,920 --> 00:32:17,539 new child a este 786 00:32:17,539 --> 00:32:18,980 nodo y que te devuelve 787 00:32:18,980 --> 00:32:49,950 Ah, no, te devuelve el nodo añadido, entonces no, no, no, no, no, vale, no, te devuelve el nodo añadido, pues no podemos ponerlo en una sola línea, ¿vale? Te devuelve el añadido, no pasa nada, esto se hace en copias y pegas y ya está, pues a ver, que Appenchild te devuelve el nodo añadido, con lo cual el autor se guardaría el nodo texto, no se guardaría el autor de encima, se guardaría el nodo texto de abajo, que es el que te devuelve Appenchild. 788 00:32:49,950 --> 00:32:51,809 A penchal te devuelve el añadido 789 00:32:51,809 --> 00:32:53,349 No al que estás tú añadiendo 790 00:32:53,349 --> 00:32:55,930 Vale, entonces hemos hecho bien mirando la 791 00:32:55,930 --> 00:32:57,109 Documenta, la ayuda 792 00:32:57,109 --> 00:33:00,230 Vale, entonces ahora ya pues para hacer 793 00:33:00,230 --> 00:33:01,650 A un punto a penchal, ¿no? 794 00:33:01,670 --> 00:33:03,650 Claro, esto copiamos y pegamos 795 00:33:03,650 --> 00:33:05,369 Para el resto de 796 00:33:05,369 --> 00:33:06,730 Y ya está 797 00:33:06,730 --> 00:33:07,950 Y ahora 798 00:33:07,950 --> 00:33:12,410 Aquí vamos a tener 799 00:33:12,410 --> 00:33:13,890 Esto también 800 00:33:13,890 --> 00:33:18,529 Para el género y para el título 801 00:33:18,529 --> 00:33:20,490 Vale, entonces 802 00:33:20,490 --> 00:33:22,750 Este está, que es el título 803 00:33:22,750 --> 00:33:24,170 el autor 804 00:33:24,170 --> 00:33:26,069 text, autor 805 00:33:26,069 --> 00:33:29,319 autor 806 00:33:29,319 --> 00:33:33,630 y ahora out 807 00:33:33,630 --> 00:33:35,609 append child 808 00:33:35,609 --> 00:33:39,809 text, autor 809 00:33:39,809 --> 00:33:43,849 vale, nos vamos con el género 810 00:33:45,289 --> 00:33:53,730 no, es que es lo que acabamos de hacer, el append child 811 00:33:53,730 --> 00:33:55,930 te devuelve con ahorro de retorno 812 00:33:55,930 --> 00:33:58,109 el nodo creado, entonces si tú lo guardas 813 00:33:58,109 --> 00:33:59,849 En el de arriba, pues te estás 814 00:33:59,849 --> 00:34:01,970 Obrigiendo el de arriba, o sea, por eso hemos borrado el anterior 815 00:34:01,970 --> 00:34:04,109 ¿A qué te refieres? 816 00:34:04,130 --> 00:34:05,890 Tú te has creado autor, por ejemplo 817 00:34:05,890 --> 00:34:07,509 Sí, me he creado 818 00:34:07,509 --> 00:34:09,050 Directamente ya guardado 819 00:34:09,050 --> 00:34:11,929 Out.appensile 820 00:34:11,929 --> 00:34:15,119 Ah 821 00:34:15,119 --> 00:34:17,079 Vale, vale, vale, sí, sí, sí 822 00:34:17,079 --> 00:34:19,420 Sí, sí, sí, vale, te refieres a 823 00:34:19,420 --> 00:34:22,159 Claro, autor.appensile 824 00:34:22,159 --> 00:34:24,340 Todo lo que, claro, sí, sí, sí 825 00:34:24,340 --> 00:34:24,760 Esto 826 00:34:24,760 --> 00:34:29,280 Claro, sí, sí 827 00:34:29,280 --> 00:34:31,579 vale, te refieres a esto y me falta un paréntesis 828 00:34:31,579 --> 00:34:33,380 si, una línea más ahorramos 829 00:34:33,380 --> 00:34:34,019 efectivamente 830 00:34:34,019 --> 00:34:36,739 vale 831 00:34:36,739 --> 00:34:39,219 a ver, elemento autor 832 00:34:39,219 --> 00:34:41,440 a ver 833 00:34:41,440 --> 00:34:42,760 create text node 834 00:34:42,760 --> 00:34:44,500 esto 835 00:34:44,500 --> 00:34:48,539 text node 836 00:34:48,539 --> 00:34:51,400 y create text node 837 00:34:51,400 --> 00:34:52,980 la variable que es 838 00:34:52,980 --> 00:34:53,880 autor 839 00:34:53,880 --> 00:34:56,159 vale, entonces 840 00:34:56,159 --> 00:34:58,780 voy a copiar y pegar ahora 841 00:34:58,780 --> 00:34:59,300 Vale 842 00:34:59,300 --> 00:35:02,800 Entonces, ya tenemos el autor 843 00:35:02,800 --> 00:35:04,320 Nos faltará 844 00:35:04,320 --> 00:35:07,119 El género 845 00:35:07,119 --> 00:35:08,320 Y el, entonces 846 00:35:08,320 --> 00:35:10,320 El autor 847 00:35:10,320 --> 00:35:13,039 El género 848 00:35:13,039 --> 00:35:14,099 Create element 849 00:35:14,099 --> 00:35:17,699 Género 850 00:35:17,699 --> 00:35:21,539 Todo por vu... 851 00:35:21,539 --> 00:35:21,739 ¡Ah! 852 00:35:26,940 --> 00:35:28,239 Todo por vuestra culpa 853 00:35:28,239 --> 00:35:29,400 Me estáis poniendo nerviosa 854 00:35:29,400 --> 00:35:31,440 Vale, a ver 855 00:35:31,440 --> 00:35:32,860 Create element autor 856 00:35:32,860 --> 00:35:34,820 Entonces estaba cambiando el autor 857 00:35:34,820 --> 00:35:36,360 Que no quiero cambiar el autor 858 00:35:36,360 --> 00:35:38,960 Vale, ahora ya sí, me voy a este 859 00:35:38,960 --> 00:35:41,699 Género 860 00:35:41,699 --> 00:35:44,139 Create element 861 00:35:44,139 --> 00:35:46,340 Género 862 00:35:46,340 --> 00:35:48,239 Y a género 863 00:35:49,079 --> 00:35:50,239 Le creamos 864 00:35:50,239 --> 00:35:51,719 Un test node con 865 00:35:51,719 --> 00:35:54,000 Género 866 00:35:54,000 --> 00:35:59,349 Vale, género 867 00:35:59,349 --> 00:36:01,309 Y ahora, esto es el año 868 00:36:01,309 --> 00:36:04,690 Create 869 00:36:04,690 --> 00:36:06,150 Element 870 00:36:06,150 --> 00:36:12,420 Y ahora 871 00:36:12,420 --> 00:36:17,619 Apen child 872 00:36:17,619 --> 00:36:20,340 Vale 873 00:36:20,340 --> 00:36:23,139 Y aquí que le pasa 874 00:36:23,139 --> 00:36:25,079 Ah que la variable se llama así 875 00:36:25,079 --> 00:36:25,940 Vale 876 00:36:25,940 --> 00:36:27,860 Ya está 877 00:36:27,860 --> 00:36:33,659 Vale create text node 878 00:36:33,659 --> 00:36:35,440 Año y el año me lo han dado 879 00:36:35,440 --> 00:36:36,960 En int 880 00:36:36,960 --> 00:36:38,519 Con lo cual no pasa nada 881 00:36:38,519 --> 00:36:39,800 Lo convierto a string 882 00:36:39,800 --> 00:36:42,119 Y punto pelota 883 00:36:42,119 --> 00:36:45,960 Ahora 884 00:36:45,960 --> 00:36:53,219 Al autor 885 00:36:53,219 --> 00:36:54,880 Y ahora al libro 886 00:36:54,880 --> 00:36:57,159 Hay que pegarle todos los anteriores 887 00:36:57,159 --> 00:36:59,139 Al libro punto 888 00:36:59,139 --> 00:37:01,480 Apen child título 889 00:37:01,480 --> 00:37:06,280 Vale 890 00:37:06,280 --> 00:37:07,519 Que es este elemento 891 00:37:07,519 --> 00:37:08,079 Ahora 892 00:37:08,079 --> 00:37:10,139 A libro 893 00:37:10,139 --> 00:37:11,300 A penchild 894 00:37:11,300 --> 00:37:12,380 Autor 895 00:37:12,380 --> 00:37:16,659 A libro 896 00:37:16,659 --> 00:37:17,920 A penchild 897 00:37:17,920 --> 00:37:18,960 Género 898 00:37:18,960 --> 00:37:21,880 Y al 899 00:37:21,880 --> 00:37:26,349 Mételo en un bucle 900 00:37:26,349 --> 00:37:27,670 O sea, en un array 901 00:37:27,670 --> 00:37:28,969 De element 902 00:37:28,969 --> 00:37:30,510 O sea, en un array 903 00:37:30,510 --> 00:37:31,929 En una lista de element 904 00:37:31,929 --> 00:37:32,809 Lo serializas 905 00:37:32,809 --> 00:37:33,650 Y lo haces con una lambda 906 00:37:33,650 --> 00:37:35,949 Y sí, te queda una línea 907 00:37:35,949 --> 00:37:37,929 Pero vamos 908 00:37:37,929 --> 00:37:39,070 Que 909 00:37:39,070 --> 00:37:42,409 Seguro que se lo piensa 910 00:37:42,409 --> 00:37:43,690 Y te lo hace así también 911 00:37:43,690 --> 00:37:45,690 No creo que haga otras cosas 912 00:37:45,690 --> 00:37:48,489 Ya tenemos el libro con las cuatro cosas 913 00:37:48,489 --> 00:37:51,050 Y ahora ya, el libro hay que dárselo al raíz 914 00:37:51,050 --> 00:37:52,110 Dime 915 00:37:52,110 --> 00:37:53,849 Guillermo 916 00:37:53,849 --> 00:38:01,929 Bueno, es que aquí lo he hecho 917 00:38:01,929 --> 00:38:03,429 En un nodo aparte en esta primera vez 918 00:38:03,429 --> 00:38:05,949 Aquí hay que poner 919 00:38:05,949 --> 00:38:07,630 El nodo que acabo de crear 920 00:38:07,630 --> 00:38:09,690 El que acabo de crear 921 00:38:09,690 --> 00:38:11,530 Es que aquí lo he hecho en una variable aparte 922 00:38:11,530 --> 00:38:13,610 ya abajo lo he hecho directamente. 923 00:38:14,110 --> 00:38:15,690 No lo he creado una variable aparte. 924 00:38:15,989 --> 00:38:17,530 De abajo no. En la primera vez solo 925 00:38:17,530 --> 00:38:18,690 lo he creado una variable aparte. 926 00:38:19,510 --> 00:38:21,469 Entonces, ahora libro hay que darse al nodo raíz. 927 00:38:22,309 --> 00:38:23,409 El nodo raíz 928 00:38:23,409 --> 00:38:27,829 no es el NOC. 929 00:38:27,829 --> 00:38:29,590 No es el DOC en realidad. 930 00:38:30,510 --> 00:38:30,730 ¿Vale? 931 00:38:32,989 --> 00:38:34,050 Sí, el nodo raíz 932 00:38:34,050 --> 00:38:35,829 es biblioteca, pero no es el mismo DOC. 933 00:38:37,070 --> 00:38:37,670 Porque este 934 00:38:37,670 --> 00:38:39,769 fichero biblioteca, de hecho, tiene 935 00:38:39,769 --> 00:38:40,949 aquí una cosa delante. 936 00:38:42,969 --> 00:38:43,449 Entonces, 937 00:38:43,449 --> 00:38:45,489 ¿Cómo sacamos el nodo raíz? 938 00:38:45,969 --> 00:38:48,369 Pues el nodo raíz lo sacamos con este método 939 00:38:48,369 --> 00:38:51,190 GetDocumentElement 940 00:38:51,190 --> 00:38:51,889 ¿Vale? 941 00:38:52,389 --> 00:39:00,099 Con este sacamos el nodo raíz 942 00:39:00,099 --> 00:39:01,659 Pues al nodo raíz 943 00:39:01,659 --> 00:39:04,219 Le pegamos ya el libro 944 00:39:04,219 --> 00:39:05,239 Que acabamos de hacer 945 00:39:05,239 --> 00:39:10,079 Y nos falta el atributo 946 00:39:10,079 --> 00:39:13,059 Nos falta el atributo 947 00:39:13,059 --> 00:39:15,659 Que tendrá un atributo 948 00:39:15,659 --> 00:39:17,119 Al atributo id 949 00:39:17,119 --> 00:39:20,599 Le ponemos id 950 00:39:20,599 --> 00:39:27,400 Y ahora tenemos que llamar a actualizar fichero 951 00:39:27,400 --> 00:39:34,599 Los que están modificando el doc, sí 952 00:39:34,599 --> 00:39:37,059 Entonces esto no lo ve así y es un rollo 953 00:39:37,059 --> 00:39:40,519 Pero se escribe muy rápido 954 00:39:40,519 --> 00:39:55,210 Vamos a agregar libro 955 00:39:55,210 --> 00:39:57,750 En nuestro main 956 00:39:57,750 --> 00:40:05,800 Agregamos libro 957 00:40:05,800 --> 00:40:12,590 Vale, gestión 958 00:40:12,590 --> 00:40:18,400 Agregar libro 959 00:40:18,400 --> 00:40:20,380 Pues venga, el libro 5 960 00:40:20,380 --> 00:40:21,719 Que ese ID no le tenemos 961 00:40:21,719 --> 00:40:26,780 Disponible, no está disponible 962 00:40:26,780 --> 00:40:28,840 Ah, este atributo no lo hemos fijado 963 00:40:28,840 --> 00:40:29,780 Ahora 964 00:40:29,780 --> 00:40:34,239 Esto sería el título 965 00:40:34,239 --> 00:40:34,920 Imagino 966 00:40:34,920 --> 00:40:38,340 Pues cualquier título que queráis 967 00:40:38,340 --> 00:40:40,360 ¿Qué título queremos? 968 00:40:43,300 --> 00:40:44,719 Uno cortito 969 00:40:44,719 --> 00:40:48,119 Este es el más corto que siempre se me ocurre 970 00:40:48,119 --> 00:40:49,920 Este entiendo que es el autor 971 00:40:49,920 --> 00:40:51,260 Momo 972 00:40:51,260 --> 00:40:52,940 El autor es Momo 973 00:40:52,940 --> 00:40:55,760 Este 974 00:40:55,760 --> 00:40:58,460 Supongo que sería el género 975 00:40:58,460 --> 00:41:00,260 El género 976 00:41:00,260 --> 00:41:01,280 Pues yo que sé 977 00:41:01,280 --> 00:41:03,239 Fantasía 978 00:41:03,239 --> 00:41:05,739 Y este último int 979 00:41:05,739 --> 00:41:06,360 Era 980 00:41:06,360 --> 00:41:10,280 El año 981 00:41:10,280 --> 00:41:11,940 1990 982 00:41:11,940 --> 00:41:13,340 Yo que sé 983 00:41:13,340 --> 00:41:15,420 Es que no le hemos puesto 984 00:41:15,420 --> 00:41:16,940 Se nos ha olvidado en el método 985 00:41:16,940 --> 00:41:18,719 Fijar el atributo disponibilidad 986 00:41:18,719 --> 00:41:20,559 Porque tiene un atributo disponible 987 00:41:20,559 --> 00:41:23,320 Entonces vamos a fijar 988 00:41:23,320 --> 00:41:25,199 Disponibilidad que es lo único que nos faltaba 989 00:41:25,199 --> 00:41:29,650 Drift.set 990 00:41:29,650 --> 00:41:30,670 Atribute 991 00:41:30,670 --> 00:41:34,070 Disponible 992 00:41:34,070 --> 00:41:37,349 Y ahora disponibilidad 993 00:41:37,349 --> 00:41:38,869 Está en 994 00:41:38,869 --> 00:41:41,110 Boolean 995 00:41:41,110 --> 00:41:43,329 Pero para 996 00:41:43,329 --> 00:41:45,110 Como convertimos un Boolean 997 00:41:45,110 --> 00:41:46,489 A string 998 00:41:46,489 --> 00:41:47,889 Pues 999 00:41:47,889 --> 00:41:50,610 La clase string 1000 00:41:50,610 --> 00:41:52,090 Esa es la concatenación 1001 00:41:52,090 --> 00:41:54,210 Tiene el value of 1002 00:41:54,210 --> 00:41:55,929 Que te convierte cualquier cosa a string 1003 00:41:55,929 --> 00:41:56,650 Pues ya está 1004 00:41:56,650 --> 00:42:04,199 Porque concatenar un boolean con el vacío 1005 00:42:04,199 --> 00:42:05,860 Eso ya sí que no, concatenar números sí 1006 00:42:05,860 --> 00:42:06,780 Pero ese ya no 1007 00:42:06,780 --> 00:42:10,460 Venga, vamos a ver a ver si lo he añadido 1008 00:42:10,460 --> 00:42:12,699 Un segundinín 1009 00:42:12,699 --> 00:42:22,000 Agregamos libro 1010 00:42:22,000 --> 00:42:26,369 El 5 1011 00:42:26,369 --> 00:42:28,730 Pues aquí está 1012 00:42:28,730 --> 00:42:30,289 Lo ha agregado 1013 00:42:30,289 --> 00:42:32,769 Venga, pues nos va