1
+ const fs = require ( 'fs' ) ;
2
+ const xml2js = require ( 'xml2js' ) ;
3
+
4
+ const datos = {
5
+ nombre : 'Eduardo Molina' ,
6
+ edad : 25 ,
7
+ fechaNacimiento : '30-08-1999' ,
8
+ lenguajes : [ 'JavaScript' , 'Python' , 'Java' ]
9
+ } ;
10
+
11
+ const crearJSON = ( ) => {
12
+ fs . writeFileSync ( 'datos.json' , JSON . stringify ( datos , null , 2 ) , 'utf-8' ) ;
13
+ console . log ( 'Archivo JSON creado:\n' , fs . readFileSync ( 'datos.json' , 'utf-8' ) ) ;
14
+ } ;
15
+
16
+ const crearXML = ( ) => {
17
+ const builder = new xml2js . Builder ( { headless : true , rootName : 'persona' } ) ;
18
+ const xml = builder . buildObject ( {
19
+ nombre : datos . nombre ,
20
+ edad : datos . edad ,
21
+ fechaNacimiento : datos . fechaNacimiento ,
22
+ lenguajes : { lenguaje : datos . lenguajes }
23
+ } ) ;
24
+ fs . writeFileSync ( 'datos.xml' , xml , 'utf-8' ) ;
25
+ console . log ( 'Archivo XML creado:\n' , fs . readFileSync ( 'datos.xml' , 'utf-8' ) ) ;
26
+ } ;
27
+
28
+
29
+ class Persona {
30
+
31
+ constructor ( nombre , edad , fechaNacimiento , lenguajes ) {
32
+ this . nombre = nombre ;
33
+ this . edad = edad ;
34
+ this . fechaNacimiento = fechaNacimiento ;
35
+ this . lenguajes = lenguajes ;
36
+ }
37
+
38
+ mostrarDatos ( ) {
39
+ console . log ( `Nombre: ${ this . nombre } ` ) ;
40
+ console . log ( `Edad: ${ this . edad } ` ) ;
41
+ console . log ( `Fecha de Nacimiento: ${ this . fechaNacimiento } ` ) ;
42
+ console . log ( `Lenguajes: ${ this . lenguajes . join ( ', ' ) } ` ) ;
43
+ }
44
+ }
45
+
46
+ const leerYTransformarJSON = ( ) => {
47
+ const dataJSON = fs . readFileSync ( 'datos.json' , 'utf-8' ) ;
48
+ const datosJSON = JSON . parse ( dataJSON ) ;
49
+ const personaJSON = new Persona (
50
+ datosJSON . nombre ,
51
+ datosJSON . edad ,
52
+ datosJSON . fechaNacimiento ,
53
+ datosJSON . lenguajes
54
+ ) ;
55
+ console . log ( '\nDatos leídos del archivo JSON:' ) ;
56
+ personaJSON . mostrarDatos ( ) ;
57
+ } ;
58
+
59
+ const leerYTransformarXML = ( ) => {
60
+ const dataXML = fs . readFileSync ( 'datos.xml' , 'utf-8' ) ;
61
+ xml2js . parseString ( dataXML , ( err , result ) => {
62
+ if ( err ) throw err ;
63
+ const datosXML = result . persona ;
64
+ const personaXML = new Persona (
65
+ datosXML . nombre [ 0 ] ,
66
+ datosXML . edad [ 0 ] ,
67
+ datosXML . fechaNacimiento [ 0 ] ,
68
+ datosXML . lenguajes [ 0 ] . lenguaje
69
+ ) ;
70
+ console . log ( '\nDatos leídos del archivo XML:' ) ;
71
+ personaXML . mostrarDatos ( ) ;
72
+ } ) ;
73
+ } ;
74
+
75
+ const borrarArchivos = ( ) => {
76
+ fs . unlinkSync ( 'datos.json' ) ;
77
+ fs . unlinkSync ( 'datos.xml' ) ;
78
+ console . log ( '\nArchivos borrados.' ) ;
79
+ } ;
80
+
81
+ crearJSON ( ) ;
82
+ crearXML ( ) ;
83
+ leerYTransformarJSON ( ) ;
84
+ leerYTransformarXML ( ) ;
85
+ borrarArchivos ( ) ;
0 commit comments