Skip to content

Commit 024dead

Browse files
committed
#12 javascript
1 parent 6f8a0c0 commit 024dead

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
const fs = require('fs');
2+
const xml2js = require('xml2js');
3+
4+
// Datos de ejemplo
5+
const persona = {
6+
nombre: "Juan",
7+
edad: 30,
8+
fechaNacimiento: "1993-05-15",
9+
lenguajesProgramacion: ["JavaScript", "Python", "Ruby"]
10+
};
11+
12+
// Función para crear el archivo XML
13+
function crearArchivoXML(datos) {
14+
const builder = new xml2js.Builder();
15+
const xml = builder.buildObject({ persona: datos });
16+
fs.writeFileSync('datos.xml', xml);
17+
console.log("Archivo XML creado.");
18+
}
19+
20+
// Función para crear el archivo JSON
21+
function crearArchivoJSON(datos) {
22+
fs.writeFileSync('datos.json', JSON.stringify(datos, null, 2));
23+
console.log("Archivo JSON creado.");
24+
}
25+
26+
// Función para mostrar el contenido de un archivo
27+
function mostrarContenidoArchivo(nombreArchivo) {
28+
console.log(`Contenido del archivo ${nombreArchivo}:`);
29+
console.log(fs.readFileSync(nombreArchivo, 'utf8'));
30+
}
31+
32+
// Función para borrar un archivo
33+
function borrarArchivo(nombreArchivo) {
34+
fs.unlinkSync(nombreArchivo);
35+
console.log(`El archivo ${nombreArchivo} ha sido borrado.`);
36+
}
37+
38+
// Función para leer el archivo XML
39+
function leerXML(nombreArchivo) {
40+
const xmlData = fs.readFileSync(nombreArchivo, 'utf8');
41+
return new Promise((resolve, reject) => {
42+
xml2js.parseString(xmlData, (err, result) => {
43+
if (err) {
44+
reject(err);
45+
} else {
46+
resolve(result.persona);
47+
}
48+
});
49+
});
50+
}
51+
52+
// Función para leer el archivo JSON
53+
function leerJSON(nombreArchivo) {
54+
const jsonData = fs.readFileSync(nombreArchivo, 'utf8');
55+
return JSON.parse(jsonData);
56+
}
57+
58+
// Función principal asíncrona
59+
async function main() {
60+
// Crear y mostrar archivo XML
61+
crearArchivoXML(persona);
62+
mostrarContenidoArchivo('datos.xml');
63+
64+
// Crear y mostrar archivo JSON
65+
crearArchivoJSON(persona);
66+
mostrarContenidoArchivo('datos.json');
67+
68+
// Borrar archivos
69+
borrarArchivo('datos.xml');
70+
borrarArchivo('datos.json');
71+
72+
// DIFICULTAD EXTRA
73+
// Crear archivos nuevamente para la lectura
74+
crearArchivoXML(persona);
75+
crearArchivoJSON(persona);
76+
77+
// Leer y transformar datos
78+
try {
79+
const personaXML = await leerXML('datos.xml');
80+
const personaJSON = leerJSON('datos.json');
81+
82+
console.log("\nDatos leídos del XML:");
83+
console.log(personaXML);
84+
console.log("\nDatos leídos del JSON:");
85+
console.log(personaJSON);
86+
} catch (error) {
87+
console.error("Error al leer los archivos:", error);
88+
}
89+
90+
// Borrar archivos nuevamente
91+
borrarArchivo('datos.xml');
92+
borrarArchivo('datos.json');
93+
}
94+
95+
// Ejecutar la función principal
96+
main().catch(console.error);

0 commit comments

Comments
 (0)