* Práctica 3.5: XML
P3.5 - Práctica de XML¶
1. Manejo de Archivos XML¶
Completa el código del ejemplo "Gestión de usuarios" para ampliar la funcionalidad del programa implementando las siguientes funciones:
-
mostrar_datos: que mostrará de forma organizada el contenido del archivo XML. -
inicializar_datos: que copiará el contenido del archivo origen (datos_usuarios_orig.xml) a otro archivo destino (datos_usuarios.xml). -
crear_arbol: que generará un nuevo árbol XML vacío con un nodo raíz especificado, permitiendo inicializar un archivo XML en caso de que no exista o esté corrupto.
Al finalizar la actividad, deberás integrar estas funciones en el programa principal (main) y probarlas en diferentes escenarios.
Instrucciones¶
-
Preparar el Entorno:
-
Asegúrate de tener los archivos
datos_usuarios_orig.xmlydatos_usuarios.xmlen el mismo directorio que tu código. -
Si no existe, crea el archivo
datos_usuarios_orig.xmlcon el siguiente contenido inicial:
<usuarios>
<usuario>
<id>1</id>
<nombre>Juan</nombre>
<edad>30</edad>
</usuario>
<usuario>
<id>2</id>
<nombre>Ana</nombre>
<edad>25</edad>
</usuario>
</usuarios>
Con esta modificación que vas a realizar en el programa, el archivo datos_usuarios.xml puede estar vacío o no existir al comenzar.
-
Implementar la Función
mostrar_datos: -
Crea una función llamada
mostrar_datosque reciba la raíz del árbol XML y muestre su contenido de forma organizada en consola. -
La función debe:
-
Imprimir los datos de cada usuario con el formato:
ID: <id>, Nombre: <nombre>, Edad: <edad>. -
Mostrar un mensaje si no hay usuarios en el archivo.
-
-
Ejemplo de salida si el archivo contiene datos:
-
Implementar la Función
inicializar_datos: -
Crea una función llamada
inicializar_datosque copie el contenido dedatos_usuarios_orig.xmladatos_usuarios.xml. -
La función debe manejar los siguientes errores:
-
El archivo origen no existe.
-
El archivo origen tiene un formato XML inválido.
-
-
Si la copia es exitosa, debe mostrar el mensaje:
-
Implementar la Función
crear_arbol: -
Crea una función llamada
crear_arbolque reciba el nombre del nodo raíz y genere un nuevo árbol XML vacío. -
La función debe retornar el árbol inicializado.
-
Ejemplo de uso:
Esto creará un árbol XML vacío con un nodo raíz llamado
<usuarios>. -
Modificar la Función
main: -
Asegúrate de que
mainsiga este flujo de ejecución:-
Limpiar la consola.
-
Ejecutar la función
inicializar_datospara copiar el contenido inicial. -
Cargar los datos desde
datos_usuarios.xmlutilizando la funcióncargar_xml. -
Si el archivo no se pudo cargar, utilizar
crear_arbolpara inicializar un nuevo archivo XML vacío. -
Mostrar el contenido inicial del archivo XML utilizando
mostrar_datos. -
Realizar una pausa hasta que se pulse una tecla.
-
Realizar las siguientes operaciones, mostrando los datos al finalizar cada operación y realizando una pausa:
-
Actualizar la edad de un usuario.
-
Insertar un nuevo usuario.
-
Eliminar un usuario.
-
-
Guardar los datos modificados nuevamente en
datos_usuarios.xml. -
A tener en cuenta a la hora de implementar el código: siempre que se muestran los datos se realiza una pausa.
-
-
Prueba tu Programa:
-
Asegúrate de que las funciones cumplen con lo esperado en estos escenarios:
-
datos_usuarios_orig.xmlno existe ("ERROR El archivo origen '{archivo_origen}' no existe. No se realizó la copia.") -
datos_usuarios_orig.xmltiene un formato inválido ("ERROR El archivo origen '{archivo_origen}' tiene un formato XML inválido.") -
datos_usuarios.xmlno contiene usuarios ("ERROR No hay usuarios en el archivo XML.")
-
Salida esperada del programa¶
Datos inicializados desde 'src/otros/datos_usuarios_orig.xml' a 'src/otros/datos_usuarios.xml'.
--- Contenido Actual del XML ---
ID: 1, Nombre: Juan, Edad: 30
ID: 2, Nombre: Ana, Edad: 25
--- Fin del Contenido ---
Presione una tecla para continuar . . .
Usuario con ID 1 actualizado.
--- Contenido Actual del XML ---
ID: 1, Nombre: Juan, Edad: 31
ID: 2, Nombre: Ana, Edad: 25
--- Fin del Contenido ---
Presione una tecla para continuar . . .
Usuario Pedro añadido con éxito.
--- Contenido Actual del XML ---
ID: 1, Nombre: Juan, Edad: 31
ID: 2, Nombre: Ana, Edad: 25
ID: 3, Nombre: Pedro, Edad: 40
--- Fin del Contenido ---
Presione una tecla para continuar . . .
Usuario con ID 2 eliminado.
--- Contenido Actual del XML ---
ID: 1, Nombre: Juan, Edad: 31
ID: 3, Nombre: Pedro, Edad: 40
--- Fin del Contenido ---
Presione una tecla para continuar . . .
Operaciones completadas. Archivo actualizado.
Notas Adicionales¶
- Utiliza las funciones auxiliares
limpiar_consolaypausarpara mejorar la legibilidad en consola. - En caso de errores, imprime mensajes claros y específicos.
- Asegúrate de probar tu programa en diferentes escenarios para validarlo correctamente.