1
+ import java .io .*;
2
+ import java .util .*;
3
+ import javax .xml .parsers .*;
4
+ import javax .xml .transform .*;
5
+ import javax .xml .transform .dom .*;
6
+ import javax .xml .transform .stream .*;
7
+ import org .w3c .dom .*;
8
+ import org .json .simple .*;
9
+ import org .json .simple .parser .*;
10
+
11
+ public class eulogioep {
12
+ public static void main (String [] args ) {
13
+ // Datos de ejemplo
14
+ String nombre = "Juan" ;
15
+ int edad = 30 ;
16
+ String fechaNacimiento = "1993-05-15" ;
17
+ List <String > lenguajesProgramacion = Arrays .asList ("Java" , "Python" , "JavaScript" );
18
+
19
+ // Crear y mostrar archivo XML
20
+ crearArchivoXML (nombre , edad , fechaNacimiento , lenguajesProgramacion );
21
+ System .out .println ("Contenido del archivo XML:" );
22
+ mostrarContenidoArchivo ("datos.xml" );
23
+
24
+ // Crear y mostrar archivo JSON
25
+ crearArchivoJSON (nombre , edad , fechaNacimiento , lenguajesProgramacion );
26
+ System .out .println ("\n Contenido del archivo JSON:" );
27
+ mostrarContenidoArchivo ("datos.json" );
28
+
29
+ // Borrar archivos
30
+ borrarArchivo ("datos.xml" );
31
+ borrarArchivo ("datos.json" );
32
+
33
+ // DIFICULTAD EXTRA
34
+ // Crear archivos nuevamente para la lectura
35
+ crearArchivoXML (nombre , edad , fechaNacimiento , lenguajesProgramacion );
36
+ crearArchivoJSON (nombre , edad , fechaNacimiento , lenguajesProgramacion );
37
+
38
+ // Leer y transformar datos
39
+ Persona personaXML = leerXML ("datos.xml" );
40
+ Persona personaJSON = leerJSON ("datos.json" );
41
+
42
+ System .out .println ("\n Datos leídos del XML:" );
43
+ System .out .println (personaXML );
44
+ System .out .println ("\n Datos leídos del JSON:" );
45
+ System .out .println (personaJSON );
46
+
47
+ // Borrar archivos nuevamente
48
+ borrarArchivo ("datos.xml" );
49
+ borrarArchivo ("datos.json" );
50
+ }
51
+
52
+ // Método para crear el archivo XML
53
+ public static void crearArchivoXML (String nombre , int edad , String fechaNacimiento , List <String > lenguajesProgramacion ) {
54
+ try {
55
+ DocumentBuilderFactory docFactory = DocumentBuilderFactory .newInstance ();
56
+ DocumentBuilder docBuilder = docFactory .newDocumentBuilder ();
57
+
58
+ // Crear el elemento raíz
59
+ Document doc = docBuilder .newDocument ();
60
+ Element rootElement = doc .createElement ("persona" );
61
+ doc .appendChild (rootElement );
62
+
63
+ // Agregar elementos hijos
64
+ Element nombreElement = doc .createElement ("nombre" );
65
+ nombreElement .setTextContent (nombre );
66
+ rootElement .appendChild (nombreElement );
67
+
68
+ Element edadElement = doc .createElement ("edad" );
69
+ edadElement .setTextContent (String .valueOf (edad ));
70
+ rootElement .appendChild (edadElement );
71
+
72
+ Element fechaNacimientoElement = doc .createElement ("fechaNacimiento" );
73
+ fechaNacimientoElement .setTextContent (fechaNacimiento );
74
+ rootElement .appendChild (fechaNacimientoElement );
75
+
76
+ Element lenguajesElement = doc .createElement ("lenguajesProgramacion" );
77
+ for (String lenguaje : lenguajesProgramacion ) {
78
+ Element lenguajeElement = doc .createElement ("lenguaje" );
79
+ lenguajeElement .setTextContent (lenguaje );
80
+ lenguajesElement .appendChild (lenguajeElement );
81
+ }
82
+ rootElement .appendChild (lenguajesElement );
83
+
84
+ // Escribir el contenido en un archivo XML
85
+ TransformerFactory transformerFactory = TransformerFactory .newInstance ();
86
+ Transformer transformer = transformerFactory .newTransformer ();
87
+ DOMSource source = new DOMSource (doc );
88
+ StreamResult result = new StreamResult (new File ("datos.xml" ));
89
+ transformer .transform (source , result );
90
+
91
+ } catch (Exception e ) {
92
+ e .printStackTrace ();
93
+ }
94
+ }
95
+
96
+ // Método para crear el archivo JSON
97
+ @ SuppressWarnings ("unchecked" )
98
+ public static void crearArchivoJSON (String nombre , int edad , String fechaNacimiento , List <String > lenguajesProgramacion ) {
99
+ JSONObject jsonObject = new JSONObject ();
100
+ jsonObject .put ("nombre" , nombre );
101
+ jsonObject .put ("edad" , edad );
102
+ jsonObject .put ("fechaNacimiento" , fechaNacimiento );
103
+ jsonObject .put ("lenguajesProgramacion" , lenguajesProgramacion );
104
+
105
+ try (FileWriter file = new FileWriter ("datos.json" )) {
106
+ file .write (jsonObject .toJSONString ());
107
+ } catch (IOException e ) {
108
+ e .printStackTrace ();
109
+ }
110
+ }
111
+
112
+ // Método para mostrar el contenido de un archivo
113
+ public static void mostrarContenidoArchivo (String nombreArchivo ) {
114
+ try (BufferedReader br = new BufferedReader (new FileReader (nombreArchivo ))) {
115
+ String linea ;
116
+ while ((linea = br .readLine ()) != null ) {
117
+ System .out .println (linea );
118
+ }
119
+ } catch (IOException e ) {
120
+ e .printStackTrace ();
121
+ }
122
+ }
123
+
124
+ // Método para borrar un archivo
125
+ public static void borrarArchivo (String nombreArchivo ) {
126
+ File archivo = new File (nombreArchivo );
127
+ if (archivo .delete ()) {
128
+ System .out .println ("El archivo " + nombreArchivo + " ha sido borrado." );
129
+ } else {
130
+ System .out .println ("No se pudo borrar el archivo " + nombreArchivo );
131
+ }
132
+ }
133
+
134
+ // DIFICULTAD EXTRA
135
+
136
+ // Clase personalizada para almacenar los datos
137
+ static class Persona {
138
+ String nombre ;
139
+ int edad ;
140
+ String fechaNacimiento ;
141
+ List <String > lenguajesProgramacion ;
142
+
143
+ @ Override
144
+ public String toString () {
145
+ return "Persona{" +
146
+ "nombre='" + nombre + '\'' +
147
+ ", edad=" + edad +
148
+ ", fechaNacimiento='" + fechaNacimiento + '\'' +
149
+ ", lenguajesProgramacion=" + lenguajesProgramacion +
150
+ '}' ;
151
+ }
152
+ }
153
+
154
+ // Método para leer el archivo XML y convertirlo a la clase Persona
155
+ public static Persona leerXML (String nombreArchivo ) {
156
+ Persona persona = new Persona ();
157
+ try {
158
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory .newInstance ();
159
+ DocumentBuilder dBuilder = dbFactory .newDocumentBuilder ();
160
+ Document doc = dBuilder .parse (new File (nombreArchivo ));
161
+ doc .getDocumentElement ().normalize ();
162
+
163
+ persona .nombre = doc .getElementsByTagName ("nombre" ).item (0 ).getTextContent ();
164
+ persona .edad = Integer .parseInt (doc .getElementsByTagName ("edad" ).item (0 ).getTextContent ());
165
+ persona .fechaNacimiento = doc .getElementsByTagName ("fechaNacimiento" ).item (0 ).getTextContent ();
166
+
167
+ persona .lenguajesProgramacion = new ArrayList <>();
168
+ NodeList lenguajesList = doc .getElementsByTagName ("lenguaje" );
169
+ for (int i = 0 ; i < lenguajesList .getLength (); i ++) {
170
+ persona .lenguajesProgramacion .add (lenguajesList .item (i ).getTextContent ());
171
+ }
172
+ } catch (Exception e ) {
173
+ e .printStackTrace ();
174
+ }
175
+ return persona ;
176
+ }
177
+
178
+ // Método para leer el archivo JSON y convertirlo a la clase Persona
179
+ public static Persona leerJSON (String nombreArchivo ) {
180
+ Persona persona = new Persona ();
181
+ JSONParser parser = new JSONParser ();
182
+
183
+ try (FileReader reader = new FileReader (nombreArchivo )) {
184
+ JSONObject jsonObject = (JSONObject ) parser .parse (reader );
185
+
186
+ persona .nombre = (String ) jsonObject .get ("nombre" );
187
+ persona .edad = ((Long ) jsonObject .get ("edad" )).intValue ();
188
+ persona .fechaNacimiento = (String ) jsonObject .get ("fechaNacimiento" );
189
+ persona .lenguajesProgramacion = (List <String >) jsonObject .get ("lenguajesProgramacion" );
190
+ } catch (Exception e ) {
191
+ e .printStackTrace ();
192
+ }
193
+ return persona ;
194
+ }
195
+ }
0 commit comments